当前位置:首页 » 招生排名 » 南昌大学c语言答案第四章

南昌大学c语言答案第四章

发布时间: 2023-03-22 01:10:30

『壹』 c语言程序设计第四版课后答案

#include"stdio.h"
main(void)
{
printf("圆裂慎源戚橘敬http://wenku..com/link?url=6zxTXwfJCk-_d86K-d6QSjY_
");
}

『贰』 求c语言试题及答案!急啊!

c语言考试题(一)

一、 单项选择题(每题2分,共20分)
1、以下选项中属于C语言的数据类型是( )
A.复数型 B.逻辑型 C.集合型 D.双精度型
2、一个C程序的执行是从( )
A.main()函数开始,直到main()函数结束 B.第一个函数开始,直到最后一个函数结束
C.第一个语句开始,直到最后一个语句结束 D.main()函数开始,直到最后一个函数结束
3、设有语句int a=3;则执行语句a+=a-=a*a;后,变量a的值是( )
A.3 B.0C.-12D.9
4、若有 char c[5]={'c','d','\0','e','\0'};则执行语句printf("%s",c);结果是( )。
A.cd\0e B.'c''d' C.cd D.cd e
5、已知:int a[2][3]={1,2,3,4,5,6}, (*p)[3]=a;则下列表达式不是4的是 ( )。
A.*(*p+3) B.*p+3 C.*(*(p+0)+3) D.a[0][3]
6、以下有宏替换不正确的叙述( ).
A.宏替换不占用运行时间 B.宏名无类型
C.宏替换只是字符串替换 D.宏名必须用大写字母表示
7、执行char str[10]=”Ch\nina”; strlen(str)的值是( )
A.5 B.6 C.7 D.9
8、下面程序的输出结果是:( )
#define POWER(x) (x*x)
main()
{int i=4; printf("%d",POWER(i-2)); }
A. -9 B. -7 C. 5 D. -6
9、在定义int a[3][4][2];后,第10个元素是( )
A.a[2][1][2] B.a[1][0][1] C.a[2][0][1] D.a[2][2][1]
10、下面程序的输出结果是:( )
typedef struct
{long x[2];<br>short y[4];<br>char z[8];<br>}MYTYPE;
MYTYPE a;
main()
{ printf("%d\n",sizeof(a));}
A. 2 B. 8 C. 14 D. 24
二、 填空题(每空1分,共11分)
1、字符串"A"在内存中占用的字节数为 。
2、C语言中的标识符只能由字母、下划线和 组成。
3、若有定义语句“ int a=25,b=14,c=19;",以下语句的执行结果是
if(a++<=25&&b--<=2&&c++) printf("***a=%d,b=%d,c=%d\n",a,b,c);
else printf("###a=%d,b=%d,c=%d\n",a,b,c);
4、有如下定义a[]="B\172\\\'a%%";则执行语句printf("%d",strlen(a));的结果为 。
5、若有定义:int a[12]={1,2,3,4,5,6,7,8,9,10,11,12},*p[4],i; for(i=0;i<4;i++) p[i]=&a[i*3];则*(*(p+1)+2)的值为 ,*p[2]的值为 。若数组的首地址为2000,则p[1]指向的地址为 。
6、设a=2,b=3,x=3.5,y=2.5,则表达式(float)(a+b)/2+(int)x%(int)y 的结果是 。
7、设x、y都是int型变量,初值都为1,则执行表达式:--x&&y++后,y的值为 。
8、语句for(i=1;i==10;i++)continue;循环的次数是 。
9、以下程序输出 。
main()
{enum em {em1=3,em2=1,em3};
char *aa[]={"AA","BB","CC","DD"}; printf("%s%s%s\n",aa[em1],aa[em2],aa[em3]);
}
三、 写程序结果(每题5分,共35分)

1、#include
main()
{int x,y,z;<br>x=1,y=2,z=3; x+=y+=z;<br>printf("1:%d\n",z+=x>y?x++:y++);<br>x=0x02ff;y=0xff00;<br>printf("2:%d\n",(x&y)>>4|0x005f);<br>x=y=z=-1; ++x||++y&&++z;<br>printf("3:%d,%d,%d\n",x,y,z);<br>}
2、#define f(x) x*x
main()
{int a=6,b=2,c;<br>c=f(a+b)/f(b);<br>printf(“%d\n”,c);<br>}
3、fun(int k)
{ printf("%d",k);
if(k>0)
fun(k-1);
}
main( )
{ int w=5; fun(w); printf("\n"); }
4、#include
main()
{int x=1,y=0;<br>switch(x)<br>{ case 1:<br>switch(y)<br>{ case 0:printf(“first\n”);break;<br>case 1:printf(“second\n”);break;<br>}
case 2:printf(“third\n”);
}
}
5、#include
main()
{ int k=4;
func(k); func(k);
}
func(int a)
{ static int m=0;
m+=a;
printf("%d",m);
}
6、struct st
{ int x;
int *y;
}*p;
int s[]={30,20};
struct st a[]={1,&s[0],2,&s[1]};
main()
{ p=a; printf("%d,",p->x);
printf("%d\n",++(*(++p)->y));
}
7、假定在当前盘目录下有2个文本文件,其名称和内容如下:
文件名: a1.txt a2.txt
内容: ABCDEF# abcdef#
#include "stdio.h"
main()
{FILE *fp;<br>void fc();<br>if((fp=fopen("a1.txt","r"))==NULL)<br>{printf("Can not open file!\n"); exit(1);}
else{fc(fp);fclose(fp);}
if((fp=fopen("a2.txt","r"))==NULL)
{printf("Can not open file!\n"); exit(1);}
else{fc(fp);fclose(fp);}
}
void fc(fp1)
FILE *fp1;
{char c;<br>while((c=fgetc(fp1))!='#')putchar(c);<br>}

四、 程序填空(每空2分,共14分)

1、下面程序求矩阵a的主对角线元素之和,请填空。
main()
{ int a[3][3]={2,4,6,8,10,12,14,16,18};
int sum=0,i,j;
for(i=0;i<3; ① )
for(j=0; ② ;j++)
if(i= =j) sum=sum+ ③ ;
printf("sum=%d\n",sum);
}
2、下列函数coy把字符数组S2中的全部字符复制到字符数组S1中, 复制时’\0’也要复制过去,’\0’后面的字符不用。
coy(char s1[],char s2[])
{ int i;
for(i=0;s2[i]!= ① ;i++)
s1[i]=s2[i];
② ;
}
3、下面程序的功能是将字符串a中的下标为奇数的元素由小到大排序,其他元素不变,请填空。
main()
{ char a[]="students",t; int i,j;
for(i=1;i<7;i+=2)
for(j=i+2;j<8; ① )
if( ② )
{t=a[i];a[i]=a[j];a[j]=t;}
puts(a);
}

c语言考试题(二)

一. 填空题(每题2分,共20分)
1. C语言基本数据类型有:_______________________________;
构造类型有:_____________________________________。 P.13

2. C语言源程序注注释符号是:________________________________,
为表明层次结构,C语言源程序通常采用_____________________格式编写。P.4

3. 源程序TEST.C经编译产生的目标文件是:________________________;
经连接处理后,产生的可执行文件是:__________________________。

4. strlen(“1234 \ 0xy)的值为:_____________________________;
sizeof(float)的值为:____________________________

5. 二维数组a[10] [50]最后一行的首地址为:_________________________;
最后一个元素的首地址为:____________________________________。

6. C标准库函数中,数学函数的原型在:________________头文件中,自定义头文件D :\ MYC \ MY . H应如何包含到源程序文件中:_________________________。P.130

7. 已知函数定义为:int stat(inta,float *p)
{……………}
则此函数的两个参数类型分别是_______________ 、 _____________________。

8. 设int x,y,z=4;
x=y=++z;
x=(y>z)?x+2;x++;则x的值是:_________;
设int a=0,b=0,c=0;c=++a | | b++; ,则a、b、c值分别是:_____________。

9. 与if (x=0) 等价的写法是if ( ! x );
判断两个(float)变量x,z是否相等一般:if ( fabc(x-z)<1e-6 )。

10.已知赋值语句zhang.year=1985;可判断zhang是_______________类型的变量;
定义文件指针的C语句是:_________________________________。

二. 单项选择题 (每题1分,共10分)
1. 组成C程序的基本单位是____________________________。
A.函数 B.标识符 C.表达式 D.语句

2. 设int类型的数据长度为2字节,则该类型数据的取值范围是__________________。
A.0至65536 B.0至65535
C.-32767至32768 D.-32768至32767

3. 在C语言中,逻辑值“真”是用_____________________表示的。
A.预定义为真值的宏 B.非零数
C.正数 D.非零整数

4. C语言对于嵌套if语句规定else总是与_____________________匹配。
A.与最外层的if B.与之前最近的if
C.与之前最近的不带else的if D.与最近的{ }之前的if

5. 数组定义char a[10]={`a`,`b`,`c`}:包括了几个元素____________________。
A.3 B.9 C.4 D.10

6. 数组名作为实参传给被调用的函数时,形参获得的是_____________________。
A.该数组第一个元素的值 B.该数组所有元素的值
C.该数组第一个元素的首地址 D.该数组所有元素的首地址

7. 为表示关系x ≥ y ≥z,正确的C语言表达式为_________________________。
A.(x>=>y>=z) B.(x>=y)AND(y>=z)
C.(x>=y)&&(y>=z) D.(x>y)&(y>=z)

8. 根据定义int a[ ]={1,2,3},i,*p=a; 从语法分析_________________是不正确的。
A. a[p-a] B.*(&a) C.p D.*(*(a+i))

9. 若有语句scanf(“%d%d”,&a,&b);要使变量a,b分别得到12和34;正确的输入形式为____________________________。
A.12 34 B.12,34 C.1234 D.12:34

10.union uex {int i;float f;char c;}ex;则sizeof(ex)的值是____________________。
A.4 B.5 C.6 D.7

三. 分析程序,写出运行结果。(每题4分,共20分)
1. 源程序如下,运行时假定键盘输入字符串为``2004``
#include
void main(void)
{
int n=0;
char c;
while( (c=getchar( )) ! =`\n` ) /*字符型数字*/
{
if (c>=`0`&&c<=`9` )
n = n*10 + c- `0` ; /*数字*/
}
printf(“value=%d|n” ,n);
}
结果为: value=2004 。

2. 源程序如下:
#include
void main(void)
{
int num[9]={399,398,397,396,395,299,290,311,301};
int score[9]={81,85,59,77,90,66,89,93,73};
int iMax,iPos,i;
iPos=0;
iMax=score[iPos];
for(i=1;i<9;i++)
if(score>iMax)
{
iPos=i;
iMax=score[iPox];
}
printf(“num=%d,score=%d”,num[iPos];score[iPos]);

结果为: num=311, score=93 。

3. 源程序如下,运行时假定键盘输入数据为:1 2 3 4 5 6 7 8 9 10
#include
void main(void)
{
int i,a[10];
int *p;
p=a;
for(i=0;i<10;i++)
scanf(“%d“,p++);
for(p=a;p< SPAN>;p++)
if (*p%2)printf(“%3d”,*p);
}
结果为: 1 3 5 7 9 。

4. 源程序如下,两次运行,分别输入数据13和21
#include
#include
void main(void)
{
int n,s;
scant (“%d”,&n);
s=panan( n);
if(s==1)printf(“yes\n”);
else printf(“no\n);
}
int panan(int n)
{
int k,j;
k=(int)sqrt((double)n);
for(j=2;j<=k,j++)
{
if(n%j==0) break;
}
if(j>k) retum(1);
else retum(0);
}
结果为 yes
no

5.源程序如下,运行时假定键盘输入字符为:AxByCz
#include
#include
void main(void)
{
char str[80];
int i;
gets(str);
for(i=0;str!=`\0`;i++)
if(str>=`a`&&str<=`z`) str-=32;
else if (str>=`A`&&str<=`Z`) str+=32;
puts(str);
}
结果为: aXbYcZ 。

四. 下列程序中每个划线处有一个错误,改正划线 中的错误,使其实现题目要求。(每体4分,共20分)
1. 求 s=1+2+3+、、、、、、、+100
include 改正为_________________________。
void sum (void) 改正为_________________________。
{
int s,i;
for (s=0,i=1;i<=100;i++)
{
s=s+ i ++; 改正为__________________________。
}
printf (“s=%f”,s) 改正为__________________________。
}

2. 源程序实现求x
#include
double pow(float . int) 改正为_________________________。
void main(void)
{
int i, n;
float x;
scanf (“%f,%d”,&x,&n);
for (i=1; i<9;i++)
printf(“%d,%e\n”, i, pow(i,x);
} 改正为______________________。
double v v pow(float x, int n)
{
int i;
double p=0; 改正为______________________。
for (i=1; i< i++)>改正为_______________________。
p*=x;
retum(p);
}

3. 源程序实现排升序。
#include
void main(void)
{
int i, j, iMin, a[10]={4,3,5,1,10,12,2,6,7,9}, iTemp;
for (i=0; i<9; i++)
{
iMin=0; 改正为_______________________。
for (j=i+1; j<10;j++)
if(a[iMin]< iMin="j;">改正为_______________________。

if (iMin==i) 改正为_________________________。
{ iTemp=a;
a[iMin]=a; 改正为_________________________。
a[iMin]=iTemp;
}
}
for(i=0; i<10; i++)
printf(“%4d”, a):
}

4. 源程序为求平均值。
#include
void main(void)
{
int i, sum; 改正为____________________。
float avg;
int sc[10], *p=sc;
for (i=0, i<10; i++) 改正为____________________。
{
scanf(“%d”, p++);
sum+= *p; 改正为____________________。
}
avg = sum/ 10; 改正为___________________。
printf(“avg=%f”, avg);
}
5. 源程序求 eX=1+x+x2/2!+……+xn/n!前n+1项之和
#include
void main(void>
{
float exp , x , t;
int i, n;
scanf(“%f, %d”,&x, &n);
t=0; 改正为___________________。
exp=1.0;
for(i=1 ; i<=n; i++)
{
if(t<1e-6) loop; 改正为__________________。
t+=x/i; 改正为___________________。
exp*=t; 改正为___________________。
}
printf(“\n%15.6f”, exp);
}
五. 编程题 (每题6分,共30分)
1. 根据以下程序框架,编写子函数,实现交换两个整型变量x和y的值。
#include
void swap (int *, int *);
void main (void)
{
int x, y;
scanf(“%d, %d”, &x, &y);
swap( &x, &y);
printf(“%d, %d”, x, y);
}
void swap( )
{

}

2. 设某班人数36人,参加C语言考试,用一维数组score[36]存放考试成绩,已给出一部分程序,完善以下程序,使其实现统计并输出不及格人数及百分比。
#include
void main (void)
{ int i;
float scoer[36], precent;
int count=0;
for (i=0; i<36; i++)
{
scanf(“%f”, &score);

}

3. 完善以下程序使其实现由键盘任意输入一串字符,统计其中大写字母个数iA、小写字母个数ia、其他字符个数iother。
#include
#include
void main (void)
{
char str [80];
int i, iA=0, ia=0, iother=0;

}

4. 完善以下程序使其实现求方阵主和辅对角线元素之和及其转置矩阵,设方阵用二维数组a表示,转置矩阵用t表示,sl和s2表示主和辅对角线元素之和。
#include
void main(void)
{
int a[3] [3]={1,3,5,7,9,11,13,15,11};
int i, j, s1, s2;
int t[3] [3];
printf(“%d, %d,\n”,s1, s2);
for(i=0; i<3; i++)
for(j=0; j<3; j++)
printf(“%3d”, t [j]);
}

5. 已知字符数组str[80],编写返回指针的子函数,实现在其中查找字符ch首次出现的位置。
#include
#include
#include
char *lstrchar(char*, char);
void main(void)
{
char c, *p, str[80];
gets (str);
scanf(“%c”, &c);
p=lstrchar(str,c);
if(p==NULL) printf(“char %c not found\n”c);
else printf(“The position is %d”, p-str);
char “lstrchar( )
{ }

历年全国计算机二级考试c语言真题及答案
http://jsj.lsxy.com/UploadFiles/20064222324839.rar

『叁』 C语言:若文本文件中存储的数据是123

这个吵升问题升销老选答案B,feof是指向斗清3后面的那个返回非0的。

『肆』 有谁有南昌大学历年来C++期末考试卷 谢谢啊

南昌大学 2008~2009学年第二学期期末考试试卷

试卷编号: ( A )卷
课程编号: T61050004 课程名称: C++程序设计 考试形式: 闭卷
适用班级: 物理08级 姓名: 学号: 班级:
学院: 专业: 考试日期: 2009-6-27
题号 一 二 三 四 五 六 七 八 九 十 总分 累分人 签名
题分 30 20 10 20 20 100
得分

考生注意事项:1、本试卷共7 页,请查看试卷中是否有缺页或破损。如有立即举手报告以便更换。
2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。
一、 选择题(每小题2分,共30分)
得分 评阅人

1、下列属于C++语句的是 。
A) ; B) a=17 C) a+5 D) cout<<’\n’
2、执行语句k=30;j=k++;后k和j的值分别为 。
A) k=30,j=30 B) k=30,j=31
C) k=31,j=30 D) k=31,j=31
3、若X是一个bool型变量,则X && 5<3的值 。
A) 为true B) 为false
C) 与X的值相同 D) 与X的值相反
4、如果a=1,b=2,c=3,d=4,则条件表达式“a>b?a:c<d?c:d ” 的值为 。
A) 3 B) 2 C) 1 D) 4
5、执行下列语句后的输出结果是 。
int hot=100;
int &rad=hot;
hot+=100;
cout<<rad<<endl;
A) 0 B) 100
C) 200 D) 300

6、下列关于break语句的叙述不正确的是 。
A) break语句可用于循环体中,它将使执行流程跳出本层循环体;
B) break语句可用于switch语句中,它将使执行流程跳出当前的switch语句;
C) break语句可用于if语句中,它将使执行流程跳出当前if语句;
D) break语句在一层循环体中可以出现多次。
7、下面关于类的对象性质的描述,正确的是 。
A) 对象之间不可以相互赋值 B) 不可以说明指向对象的指针
C) 对象不能用作数组元素 D) 一个对象能用作另一个对象的成员
8、在 C++ 中实现封装是借助于 。
A) 枚举 B) 类
C) 数组 D) 函数
9、下列不是描述类的成员函数的是 。
A) 构造函数 B) 析构函数
C) 友元函数 D) 拷贝构造函数
10、不能作为函数重载判断依据的是 。
A) 参数个数 B) 参数类型
C) 函数名称 D)返回值类型
11、假定一个类的构造函数为 A(int aa,int bb){a=aa++;b=a*bb++;} ,则执行
A X(4,5); 语句后, X.a 和 X.b 的值分别为 。
A) 4 和 5 B) 5 和 30
C) 4 和 20 D) 20 和 5
12、对于double (*p)[10];的描述, 是正确的。
A) p是一个指向数组的指针,所指向的数组是10个double型元素;
B) p是一个指向某个数组中第10个元素的指针,该元素是double型变量;
C) p[5]表示某个数组的第10个元素的值;
D) p是一个具有10个元素的指针数组,每个元素是一个double型指针;
13、下面的函数声明中, 哪一个是” void BC(int a, int b);”的重载函数?
A) int BC(int a, int b) B) void BC(int a, char b)
C) float BC(int a, int b, int c = 0) D) void BC(int a, int b=0)
14、已知 char c; char * const pc="asdf", 是正确的。
A) pc="dfgh" B) *pc=‘b’
C) *pc++=‘y’ D) pc=&c
15、下列关于构造函数的叙述,错误的是 。
A) 构造函数可以设置默认参数;
B) 构造函数在说明类变量时自动调用;
C) 构造函数可以对静态数据成员进行初始化;
D) 构造函数可以重载;

二、 填空题(每空1分,共20分)
得分 评阅人

1、C++程序主要有三种基本控制结构,分别是顺序结构、 【1】 和 【2】 。
2、C++中,对类中的成员函数和属性的访问是通过_ 【3】 __、_ 【4】____和_ 【5】 __这3 个关键字来控制的。
3、在定义类的对象时,C++程序将自动调用该对象的_ 【6】 _函数初始化对象自身;在撤销类的对象时,C++程序将自动调用该对象的__ 【7】 __函数。
4、外部函数应声明为类的 【8】 才能访问这个类的private成员。
5、描述命题"A大于B且小于C"的表达式为 【9】 。
6、 面向对象的程序设计有四大特征,它们是 【10】 、 【11】 、 【12】 、 【13】 。
7、 设"int a=3,b=4,c=5;",表达式"(a+b)>c&&b==c"的值是 【14】 。
8、若用语句来申请空间:int *p=new int[10];要释放该空间应使用语句: 【15】 。
9、已知变量x的值是3,则表达式x+=3,x++,x+2的值是 【16】 。
10、以下程序实现从键盘输入两个整数a和b,输出其中大者的功能(不考虑相等的情况)
#include <iostream.h>
void main( )
{ 【17】 ;
cin>>a>>b;
if( 【18】 ) cout<<”最大值为:”<<a;
else cout<<”最大值为:”<<b;
}
11、下列f函数的功能是将形参x的值转换成二进制数,所得二进制书的每一位放在一 维数组y中返回。二进制的最低位放在下标为0的元素中。请填空。
Void f(int x, int y[ ])
{
int a=0,b;
do
{
b=x% 【19】 ;
y[a++]=b;
x= 【20】 ;
} while(x)
}

三、 判断题(每小题1分,共10分)
得分 评阅人

1、C++中,数组下标从1开始。( )
2、C++允许对字符串进行整体操作。( )
3、break语句也可以用于if体内,它可退出if语句。()
4、在说明语句 char a(‘A’),&b=a,*pa=&a;中,b的值与*pa的值相等。( )
5、对象数组的元素可以是不同类的对象。( )
6、私有继承中,基类中所有成员对派生类的对象都是不可见的。()
7、类中所提供的成员函数可以直接访问私有成员。()
8、按照标识符的要求,下划线是不能组成正确标识符的。( )
9、函数的默认参数没有顺序要求,可以随意定义。( )
10、在 C++ 语言中,”A”占两个字节,而 ’A’占一个字节。( )

四、 程序阅读题 (每小题5分,共20分)
得分 评阅人

写出下列程序的运行输出结果:
1、#include <iostream.h>
void main()
{
int a,b,c,;
c=2,c+=10;
a = 10;
b=11;
a * = 2;
b / = 2;
c % = 2;
cout<<a<<","<<b<<","<<c<<endl;
}

2、#include <iostream.h>
void main()
{
int i;
for(i=4 ; i<=10 ; i++ )
{ if (i%3= =0) continue;
cout<<i; }
}
3、#include<iostream.h>
class Sample
{
int x;
public:
Sample(){};
Sample(int a){x=a;}
Sample(Sample &a){x=a.x+1;}
void disp(){cout<<"x="<<x<<endl;}
};
void main()
{ Sample s1(2),s2(s1);
s1.disp();
s2.disp();
}

4、#include <iostream>
using namespace std;
int GCD (int u, int v)
{
while (u % v) {
int t= u % v;
u = v;
v = t;
}
return v;
}
int GCM (int u, int v)
{
int gcd = GCD (u, v);
return u * v / gcd;
}
void main()
{int a=8,b=12;
cout<<”GCD=”<<GCD(a,b)<<endl;
cout<<”GCM=”<<GCM(a,b)<<endl;
}

五、 程序设计题 (每小题10分,共20分)
得分 评阅人

1、从键盘输入10个正整数,输出它们中的最大值、最小值和平均值。

2、定义并实现一个矩形类,有长、宽两个属性,用成员函数计算矩形的面积。

『伍』 c语言第四章的答案

//如果是老谭的,你看看下面是否是你要的。
第三章 3.4
main()
{int a,b,c;
long int u,n;
float x,y,z;
char c1,c2;
a=3;b=4;c=5;
x=1.2;y=2.4;z=-3.6;
u=51274;n=128765;
c1='a';c2='b';
printf("\n");
printf("a=%2d b=%2d c=%2d\n",a,b,c);
printf("x=%8.6f,y=%8.6f,z=%9.6f\n",x,y,z);
printf("x+y=%5.2f y+z=%5.2f z+x=%5.2f\n",x+y,y+z,z+x);
printf("u=%6ld n=%9ld\n",u,n);
printf("c1='%c'or %d(ASCII)\n",c1,c1);
printf("c2='%c'or %d(ASCII)\n",c2,c2);
}
3.5
57
5 7
67.856400,-789.123962
67.856400,-789.123962
67.86 -789.12,67.856400,-789.123962,67.856400,-789.123962
6.785640e+001,-7.89e+002
A,65,101,41
1234567,4553207,d687
65535,177777,ffff,-1
COMPUTER, COM
3.6
a=3 b=7/
x=8.5 y=71.82/
c1=A c2=a/
3.7
10 20Aa1.5 -3.75 +1.4,67.8/
(空 3)10(空3)20Aa1.5(空1)-3.75(空1)(随意输入一个数),67.8 回车
3.8
main()
{float pi,h,r,l,s,sq,sv,sz;
pi=3.1415926;
printf("input r,h\n");
scanf("%f,%f",&r,&h);
l=2*pi*r;
s=r*r*pi; sq=4*pi*r*r;
sv=4.0/3.0*pi*r*r*r;
sz=pi*r*r*h;
printf("l=%6.2f\n",l);
printf("s=%6.2f\n",s);
printf("sq=%6.2f\n",sq);
printf("vq=%6.2f\n",sv);
printf("vz=%6.2f\n",sz);
}
3.9
main()
{float c,f;
scanf("%f",&f);
c=(5.0/9.0)*(f-32);
printf("c=%5.2f\n",c);
}
3.10
#include"stdio.h"
main()
{char c1,c2;
scanf("%c,%c",&c1,&c2);
putchar(c1);
putchar(c2);
printf("\n");
printf("%c%c\n",c1,c2);
}
第四章
4.3
(1)0 (2)1 (3)1 (4)0 (5)1
4.4
main()
{int a,b,c;
scanf("%d,%d,%d",&a,&b,&c);
if(a<b)
if(b<c)
printf("max=%d\n",c);
else
printf("max=%d\n",b);
else if(a<c)
printf("max=%d\n",c);
else
printf("max=%d\n",a);
}
main() {int a,b,c,temp,max;
scanf("%d,%d,%d",&a,&b,&c);
temp=(a>b)?a:b;
max=(c>temp)?c:temp;
printf("max=%d",max);
}

4.5
main()
{int x,y;
scanf("%d",&x);
if(x<1)y=x;
else if(x<10)y=2*x-1;
else y=3*x-11;
printf("y=%d",y);
}
4.6
main()
{int score,temp,logic;
char grade;
logic=1;
while(logic)
{scanf("%d",&score);
if(score>=0&&score<=100)logic=0;
}
if(score==100)
temp=9;
else
temp=(score-score%10)/10;
switch(temp)
{case 9:grade='A';break;
case 8:grade='B';break;
case 7:grade='C';break;
case 6:grade='D';break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:grade='E';
}
printf"score=%d,grade=%c",score,grade);
}
4.7 main()
{long int num;
int indiv,ten,hundred,thousand,ten_thousand,place;
scanf("%ld",&num);
if(num>9999) place=5;
else if(num>999) place=4;
else if(num>99) place=3;
else if(num>9) place=2;
else place=1;
printf("place=%d\n",place);
ten_thousand=num/10000;
thousand=(num-ten_thousand*10000)/1000;
hundred=(num-ten_thousand*10000-thousand*1000)/100;
ten=(num-ten_thousand*10000-thousand*1000-hundred*100)/10;
indiv=num-ten_thousand*10000-thousand*1000-hundred*100-ten*10;
switch(place)
{case 5:printf("%d,%d,%d,%d,%d\n",ten_thousand,thousand,hundred,ten,indiv);
printf("%d,%d,%d,%d,%d\n",indiv,ten,hundred,thousand,ten_thousand);
break;
case 4:printf("%d,%d,%d,%d\n",thousand,hundred,ten,indiv);
printf("%d,%d,%d,%d\n",indiv,ten,hundred,thousand);
break;
case 3:printf("%d,%d,%d\n",hundred,ten,indiv);
printf("%d,%d,%d\n",indiv,ten,hundred);
break;
case 2:printf("%d,%d\n",ten,indiv);
printf("%d,%d\n",indiv,ten);
break;
case 1:printf("%d\n",indiv);
printf("%d\n",indiv);
}
}
4.8
main()
{long i;
float bonus,bon1,bon2,bon4,bon6,bon10;
bon1=100000*0.1;
bon2=bon1+100000*0.075;
bon4=bon2+200000*0.05;
bon6=bon4+200000*0.03;
bon10=bon6+400000*0.015;
scanf("%ld",&i);
if(i<=1e5)bonus=i*0.1;
else if(i<=2e5)bonus=bon1+(i-100000)*0.075; else if(i<=4e5)bonus=bon2+(i-200000)*0.05;
else if(i<=6e5)bonus=bon4+(i-400000)*0.03;
else if(i<=1e6)bonus=bon6+(i-600000)*0.015;
else bonus=bon10+(i-1000000)*0.01;
printf("bonus=%10.2f",bonus);
}
main()
{long i;
float bonus,bon1,bon2,bon4,bon6,bon10;
int branch;
bon1=100000*0.1;
bon2=bon1+100000*0.075;
bon4=bon2+200000*0.05;
bon6=bon4+200000*0.03;
bon10=bon6+400000*0.015;
scanf("%ld",&i);
branch=i/100000;
if(branch>10)branch=10;
switch(branch)
{case 0:bonus=i*0.1;break;
case 1:bonus=bon1+(i-100000)*0.075;break;
case 2:
case 3:bonus=bon2+(i-200000)*0.05;break;
case 4:
case 5:bonus=bon4+(i-400000)*0.03;break;
case 6:
case 7
case 8:
case 9:bonus=bon6+(i-600000)*0.015;break;
case 10:bonus=bon10+(i-1000000)*0.01;
}
printf("bonus=%10.2f",bonus);
}

4.9
main()
{int t,a,b,c,d;
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
if(a>b){t=a;a=b;b=t;}
if(a>c){t=a;a=c;c=t;}
if(a>d){t=a;a=d;d=t;}
if(b>c){t=b;b=c;c=t;}
if(b>d){t=b;b=d;d=t;}
if(c>d){t=c;c=d;d=t;} printf("%d %d %d %d\n",a,b,c,d);
}
4.10
main()
{int h=10;
float x,y,x0=2,y0=2,d1,d2,d3,d4;
scanf("%f,%f",&x,&y);
d1=(x-x0)*(x-x0)+(y-y0)*(y-y0);
d2=(x-x0)*(x-x0)+(y+y0)*(y+y0);
d3=(x+x0)*(x+x0)+(y-y0)*(y-y0);
d4=(x+x0)*(x+x0)+(y+y0)*(y+y0);
if(d1>1&&d2>1&&d3>1&&d4>1)h=0;
printf("h=%d",h);
}

『陆』 在C语言中,在执行 char str[10]=”ch\nina” ; strlen(str) 的结果是( )。 A、5 B、6 C、7 D、9

Neusoft

《C语言程序设计》习题集
《C程序设计》习题集
第一章C语言基础知识

1.1 填空题
1.要把高级语言编写的源程序转换为目标程序,需要使用
A) 编辑程序 B) 驱动程序 C) 诊断程序 D) 编译程序
2. 若有说明语句:int a,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是
A) scanf("%d%d%d",&a,&b,d); B) scanf("%d%d%d",&a,&b,&d);
C) scanf("%d%d%d",a,b,d); D) scanf("%d%d%d",a,b,*d);
3.以下选项中合法的用户标识符是______。
A) long B) _2Test C) 3Dmax D) A.dat
4.设a和b均为誉睁double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是______。
A) 6.500000 B) 6 C) 5.500000 D) 6.000000
5.已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是______。
A) scanf("%2d%2d%2d"庆禅岁,&i,&j,&k);
B) scanf(""%d %d %d",&i,&j,&k);
C) scanf("%d,%d,%d",&i,&j,&k);
D) scanf("i=%d,j=%d,k=%d",&i,&j,&k);
6.C语言程序的执行,总是起始于()。
A) 程序中的第一条可执行语句
B) 程序中的第一个函数
C) main函数
D) 包含文件中的第一个函数

7.下列说法中正确的是()
A) C程序书写时,不区分大小写字母
B) C程序书写时,一行只能写一个语句
C) C程序书写时,一个语句可分成几行书写
D) C程序书写时每行必须有行号

8.若有说明语句:int a; float b;,以下输入语句正确的是()
A) scanf("%f%f",&a,&b);
B) scanf("%f%d",&a,&b);
C) scanf("%d,%f",&a,&b);
D) scanf("%6.2f%6.2f",&a,&b);
9.以下程序的输出结果是()
main( )
{ int x=11,y=11;
printf("%d%d\\n",x--,--y);
}
A) 11,11 B) 10,10 C) 10,11 D) 11,10

10.执行下面程序段,给x、y赋值时,不能作为数据分隔符的是()
int x,y;
scanf("%d%d",&x,&y);
A) 空格 B) Tab键 C) 回车 D) 逗号

11.执行下面程序时,欲将25和2.5分别赋给a和b,正确的输入方法是。
int a;
float b;
scanf("a=%d,b=%f",&a,&b);
A) 25□2.5
B) 25,2.5
C) a=25,b=5.5
D) a=25□b=2.5

12.英文小写字母d的ASCII码为100,英文大写字母D的ASCII码为
A) 50 B) 66 C) 52 D) 68
13.以下定义语句中错误的是( )。
A)int a=3,b=5; B)float x1; x2;
C)char c1,c2,c3; D)double y3, y4;
14.若将整数4和5赋给整型变量a和b,对于语句scanf("%d%d" , &a,&b);在从键盘袭春输入数据时,正确的数据输入格式为( )。
A)4,5 B)4 5 C)4:5 D)4#5
15.若整型变量a和b的值分别为6和8,则下列语句printf("a=%d,b=%d",a,b); 的输出结果为( )。
A)6, 8 B)6 8 C)a=6 b=8 D)a=6, b=8
16.C语言中的字符常量是以( )括起来的一个字符。
A)双引号 B)单引号 C)\……\ D)*……*
17.C语言中的转义字符\n的作用是( )。
A)回车换行 B)横向跳格
C)纵向跳至本列下行 D)将光标移至本行行首
18.若有定义:int a=8,b=5,c;,执行语句c=a/b+0.4;后,c的值为
A) 1.4 B) 1 C) 2.0 D) 2
19.如果要把常量327存入变量a中,a可以定义成哪些类型?(多选)
A. int B. char
C. long D. float
20.下面哪个表达式的值为4.(单选)
A. 11/3 B. 11.0/3
C. (float)11/3 D. (int)(11.0/3+0.5)
#include<stdio.h>
#include<math.h>
main( )
{int a=1,b=4,c=2;
float x=5.5,y=9.0,z;
z=(a+b)/c+sqrt((double)y)*1.2/c+x;
printf("%f\n",z);
}
A).9.800000 B).9.300000 C).8.500000 D).8.000000

21.main( )
{int x = 10, y = 3;
printf("%d\n",y=x/y);
}
A).0 B).1 C).3 D).不确定的值

22.main( )
{int a;
printf("%d\n";(a=3*5,a*4,a+5));
}
A).65 B).20 C).15 D).10

23.已知小写字母a的ASCII码为97,大写字母A的ASCII码为65。以下程序
main()
{ unsigned int a=32, b=66;
printf("%c\n", a+b);
}
的结果为:
A).66 B).98 C).b D).B

24.设有如下定义
int x=10,y=3,z;
则语句
printf("%d\n",z=(x%y,x/y));
的输出结果是
A).1 B).0 C).4 D).3

25.#define SQR(X) X*X
main()
{
int a=10,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf("%d\n",a);
}
A).10 B).1 C).9 D).0

26.#define MAX(x, y) (x)>(y)?(x):(y)
main()
{ int a=1, b=2, c=3, d=2, t;
t=MAX(a+b, c+d)*100;
printf("%d\n",t);
}
的运行结果为:
A).500 B).5 C).3 D).300

27.以下程序的输出结果是
main()
{
int x=10,y=10;
printf("%d %d\n",x--,--y);
}
A).10 10 B).9 9 C).0 10 D).10 9

28.语句:printf("%d",(a=2)&&(b= -2));的输出结果是
A).无输出 B).结果不确定 C).-1 D).1
33、当c的值不为0时, 能正确将c的值赋给变量a、b
A).c=b=a;
B).(a=c)||(b=c)
C).(a=c)&&(b=c)
D).a=c=b

29.能正确表示a和b同时为正或同时为负的逻辑表达式是
A).(a>=0||b>=0)&&(a<0||b<0) B).(a>=0&&b>=0)&&(a<0&&b<0)
C).(a+b>0)&&(a+b<=0) D).a*b>0

30.下面合法的赋值语句是
A) x+y=2002; B) ch="green"; C) x=(a+b)++; D) x=y=0316;

31.下面哪个表达式的值为4.(单选)
A. 11/3 B. 11.0/3
C. (float)11/3 D. (int)(11.0/3+0.5)

32.已知a为整型变量,那么与表达式 a!=0 真假值情况相同的表达式有哪些?(多选)
A. a>0||a<0 B. a
C. !a= =0 D. !a

33.以下非法的赋值语句是
A) n=(i=2,++i); B) j++; C) ++(i+1); D) x=j>0;
34.若有以下程序:
main()
{int k=2,i=2,m;
m=(k+=i*=k); printf("%d,%d\n",m,i);
}
执行后的输出结果是______。
A) 8,6 B) 8,3 C) 6,4 D) 7,4

35.已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1&&y+z/2的值是______。
A) 6 B) 0 C) 2 D) 1

36.以下程序的输出结果是
main()
{
int a=3;
printf("%d\n",(a+=a-=a*a) );
}
A) -6 B)12 C) 0 D) –12

37.设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为
A) 0 B) 1 C)2 D) 3

38.假定w、x、y、z、m均为int型变量,有如下程序段:
w=1; x=2; y=3; z=4;
m=(w<x)?w: x;
m=(m<y)?m:y;
m=(m<z)?m: z;
则该程序运行后,m的值是
A) 4 B) 3 C) 2 D) 1

1.2 填空题
1.下面程序段的输出结果是。
int k=10;
float a=3.5,b=6.7,c;
c=a+k%3*(int)(a+b)%2/4;

2.表达式5%(-3)的值是,表达式-5%(-3)的值是。

3.已知:int a=5;则执行a+=a-=a*a;语句后,a的值为。

4.下面程序的运行结果是x=,y=。
main( )
{ float x=4.9;int y;
y=(int)x;
printf ("x=%f , y=%d", x ,y); }

5.若有定义:int a=8,b=5,c;,执行语句c=a/b+0.4;后,c的值为。

6.以下程序的输出结果是。
main()
{ int a=5,b=4,c=6,d;
printf("%d\n",d=a>b?(a>c?a:c):(b));
}

7.以下程序的输出结果是。
main()
{ int a=4,b=5,c=0,d;
d=!a&&!b||!c;
printf("%d\n",d);
}

8.当a=3,b=4,c=5时,写出下列各式的值。
a<b的值为___, a<=b的值为___,
a==c的值为___, a!=c的值为___,
a&&b的值为___, !a&&b的值为___,
a||c的值为___, !a||c的值为___,
a+b>c&&b==c的值为___。

9.整型变量a的值是5,表达式a/=a+a;的值。

10.已知a=3,b=4,c=5,逻辑表达式a||b+c&&b-c的值

11.已知a=3,b=4,c=5,逻辑表达式!(a>b)&&!c||1的值

1.3 程序设计题
1.编写程序:在屏幕上显示一句话“hello neusoft!”。

2.编写程序在屏幕上输出如下图型:
*
***
*****
*******
3.已知圆的半径是5.6,求其直径、周长、面积并输出。
4.从键盘输入圆的半径,求其直径、周长、面积并输出。

5.编写程序求任意圆的体积

6.求任意一元二次方程度两个实根。

第二章 顺序程序结构设计

2.1 填空题
1.计算机语言提供三种基本控制结构,即,,。人们提倡使用这三种结构编写程序,并称这样的程序设计为。
2.2 程序设计题
1.从键盘输入5个整数,求它们的和、平均值并输出。

2.编写程序,从键盘输入两个整数分别存放在变量c1,c2中,要求通过程序交换它们的值。

第三章 分支结构程序设计

3.1 填空题
1.能正确表示“当x的值在[1,10]和[200,210]范围内为真,否则为假”的表达式是()。
A)(x>=1)&& (x<=10) && (x>=200) || (x<=210)
B)(x>=1)|| (x<=10) || (x>=200) || (x<=210)
C)(x>=1)&& (x<=10) || (x>=200) && (x<=210)
D)(x>=1)|| (x<=10) && (x>=200) || (x<=210)
2.判断char型变量ch是否为大写字母的正确表达式是()。
A)’A’<=ch<=’Z’ B) (ch>=’A’) & (ch<=’Z’)
C) (ch>=’A’) && (ch<=’Z’) D)(‘A’<=ch) AND (‘Z’>=ch)
3.请阅读以下程序:
main()
{ int a=5, b=0, c=0;
if (a=b+c) printf(“***\n”);
else printf(“$$$\n”);
}
以上程序()。
A) 有语法错误不能通过编译 B) 可以通过编译但不能通过连接
C) 输出*** D) 输出$$$
4.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是()。
if (a<b)
if(c<d) x=1;
else
if (a<c)
if (b<d) x=2;
else x=3;
else x=6;
else x=7;
A) 1 B) 2 C) 3 D) 6
5.以下程序的输出结果是()。
main()
{ int x=2, y=-1, z=2;
if (x<y)
if (y<0) z=0;
else z=z+1;
printf(“%d\n”, z);
}
A) 3 B) 2 C) 1 D) 0
6.若运行时给变量x输入12,则以下程序的运行结果是()。
main()
{ int x, y;
scanf(“%d”, &x);
y=x>12?x+10:x-12;
printf(“%d\n”, y);
}
A) 0 B) 22 C) 12 D) 10

3.2 填空题
1.输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其它字符不变。请在横线上填写正确的内容。
main()
{ char ch;
scanf(“%c”, &ch);
if () ch=ch+32;
else if ( ch>=’a’ && ch<=’z’ ) ;
printf(“%c”, ch);
}
2.以下程序实现:输入三个整数,按从大到小的顺序进行输出。请在横线上填写正确内容。
main()
{ int x, y, z, c;
scanf(“%d %d %d”, &x, &y, &z);
if ( )

if ( )

if ()

printf(“%d, %d,%d”, x, y, z);
}
3.以下程序的运行结果是。
main()
{ int a, b, c, d, x;
a=c=0; b=1; d=20;
if (a) d=d-10;
else if (!b)
if (!c) x=15;
else x=25;
printf(“%d\n”,d);
}
4.下面程序根据以下函数关系,对输入的每个x值,计算出y值。请在横线上填写正确内容。
x y
2<x<=10 x(x+2)
-1<x<=2 2x
X<=-1 x-1
main()
{ int x, y;
scanf(“%d”, &x);
if () y=x*(x+2);
else if () y=2*x;
else if ( x<=-1 ) y=x-1;
else ;
if (y!=-1) printf(“%d”, y);
else printf(“error”);
}
5.设有程序片段:
switch (grade)
{ case ‘A’ : printf(“ 85-100\n”);
case ‘B’ : printf(“ 70-84\n”);
case ‘C’ : printf(“ 60-69\n”);
case ‘D’ : printf(“<60\n”);
default : printf(“error!\n”);
}
若grade的值为’C’,则输出结果是。
6.以下程序段的运行结果是。
int x=1, y=0;
switch (x)
{ case 1:
switch (y)
{ case 0 : printf(“**1**\n”); break;
case 1 : printf(“**2**\n”); break;
}
case 2: printf(“**3**\n”);
}

3.3 程序设计题
1.写一程序,从键盘上输入一年份year(为十进制数),判断其是否为闰年。(闰年的条件是:能被4整除、但不能被100整除,或者能被400整除)

2.从键盘输入x的值,求y的值并输出。

3.从键盘输入四个整数,输出其中的最大者。

4.求任意二次方程的根。(包括虚根)

5.根据输入的X值计算并输出如下分段函数的值。

6.某百货公司采用购物打折扣的方法来促销商品,该公司根据输入的购物金额,计算并输出顾客实际付款金额,顾客一次性购物的折扣率是:
(1)少于500元不打折;
(2)500元以上且少于1000元者,按九五折优惠;
(3)1000元以上且少于2000元者,按九折优惠;
(4)2000元以上且少于3000元者,按八五折优惠;
(5)3000元以上者,按八折优惠。

7.根据输入的三个边长a,b,c,判断它们能否构成三角形;若能构成三角形,继续判断该三角形是等边、等腰还是一般三角形。

第四章 循环结构程序设计

4.1 选择题
1.设有程序段
int k=10;
while (k=0) k= k—1;
则下面描述中正确的是()
A) while循环执行10次 B)循环是无限循环
C)循环体语句一次也不执行 D)循环体语句执行一次
2.下面程序的功能是计算:至50中是7的倍数的数值之和,请选择填空。
#include <stdio.h>
main()
{int i,sum= 0;
for(i=1;i<=50;i++)
if( () ) sum+=i;
printf("%d",sum);
}
A) (int)(i/7)==i/7 B) (int)i/7==i/7
C) i%7= 0 D) i%7==0
3.下面程序段的运行结果是
a=1;b= 2;c=2;
while(a<b<c)
{
t= a;
a= b;
b=t;
c- -;
}
printf("%d,%d,%d",a,6,c);
A)1,2,0 B)2,1,0 C)1,2,1 D)2,1,1
4.下面程序的功能是计算 1至10之间的奇数之和及偶数之和。请选择填空
#include <stdio.h>
main()
{int a,b,c,i;
a=c=0;
for(i=0;i<=10;i+=2)
{ a+=i;
() ;
c+=b;
}
printf("偶数之和=%d\n",a);
printf("奇数之和=%d\n",c-11),
}
A)b=i-- B) b=i+1 C)b=i++ D)b=i-1
5.下面程序段:
for (t=1; t<=100;t++)
{
scanf("%d",&x);
if(x<0) continue;
printf("%3d",t);
}
A) 当x<0时整个循环结束
B) x>=0时什么也不输出
C) printf函数永远也不执行
D)最多允许输出100个非负整数
6.下面程序的运行结果是:
#include "stdio.h"
main()
{int i;
for(i=1;i<=5;i++)
{if (i%2) printf("*");
else continue;
printf("#");
}
printf("#");}
A) *#*#$ B) #*#*#*$ C) *#*#$ D)#*#*$
7.设有程序段
int k=10;
while(k=5) k=k-1;
则下面描述正确的是
A)while循环执行10次 B)是死循环
C)循环语句一次也不执行 D)循环体语句执行一次
8.以下程序运行后的输出结果是________。
main()
{int x=15;
while(x>10&&x<50)
{x++;
if(x/3)
else continue;
}
printf("%d\n",x);
}

4.2 程序设计题
1.求1~1000内所有能被3整除的整数,所有数右对齐,每行输出10个数,每屏输出20行。
2.从键盘上接受10个数,求和。要求:
(1)、先提示“请输入第1个数:” ,输入第一个数后再提示“请输入第2个数”,依次类推;
(2)、输入完十个数后,输出十个数求和的结果。

3.求n! ,n的值从键盘输入.

4.从键盘上输入一个正整数(VC下少于10位,winTC下小于32767),求其各数位之和.
5.从键盘输入10个数,找出其中最大的数。分别用while和for语句实现。
6.输出2~100(不含100)之间的全部同构数。所谓同构数是指:如果某数与其右起若干位的平方数相等,则称该数为同构数。

7.编写输出以下图形的程序(要求行数从键盘输入)。

1
12
123
1234
12345
123456
……
8.计算200以内的所有素数的和。

5.1 选择题
1.以下对一维数组a的正确说明是( )
(A)int a(10);
(B)int n=10,a[n];
(C)int n; scanf(“%d”,&n); int a[n];
(D)#define SIZE 10
int a[SIZE];
2.对以下说明语句的正确理解是( )
int a[10]=;
(A)将5个初值依次赋给a[1]至a[5]
(B)将5个初值依次赋给a[0]至a[4]
(C)将5个初值依次赋给a[6]至a[10]
(D)因为数组长度与初值的个数不相同,所以此语句不正确
3.下面程序的运行结果是( )
char c[5]=; printf(“%s”,c);
(A)ab (B)abc (C)abc+乱码 (D)ab\0c\0
4.对两个数组a和b进行如下初始化
char a[]=”ABCDEF”;
char b[]=;
则以下叙述正确的是 ( )
(A)a与b数组完全相同 (B)a与b长度相同
(C)a和b中都存放字符串 (D)a数组比b数组的长度长
5.下面是对s的初始化,其中不正确的是( )
(A)char s[5]=; (B)char s[5]=;
(C)char s[5]=””; (D)char s[5]=”abcdef”;
6.以下程序运行的结果是( )
char s[6];
s=”abcd”;
printf(“%s\n”,s);
(A)”abcd” (B)abcd (C)abcd+乱码 (D)编译出错
7.若有说明语句char u[]=”Microsoft”,则数组的大小是( )
(A)100 (B)80 (C)10 (D)9
8.以下不正确的定义语句是 ( )
(A)double y[5]=;
(B)int y[5]=;
(C)char c[]=;
(D)char c[]=;
9.当执行下面的程序时,如果输入ABC,则输出结果是( )
A) ABC6789 B) ABC67 C) 12345ABC6 D) ABC456789
#include "stdio.h"
#include "string.h"
main()
{ char ss[10]="1,2,3,4,5";
gets(ss); strcat(ss, "6789"); printf("%s\n",ss);
}
10.下列程序段的输出结果是 。
main()
{ char b[]="Hello,you";
b[5]=0;
printf("%s \n", b );
}
11. 以下程序的输出结果是( )
main()
{ int i, a[10];
for(i=9;i>=0;i--) a[i]=10-i;
printf("%d%d%d",a[2],a[5],a[8]);
}
A) 258 B) 741 C) 852 D) 369
12.在定义int a[10];之后,对a的引用正确的是( )。
A.a[10] B.a[6.3] C.a(6) D.a[10-10]

13.以下对一维数组a进行正确初始化的是( )。
A.int a[10]=(0,0,0,0,0); B.int a[10]={};
C.int a[]=; D.int a[10]=;

14.以下对字符数组word进行不正确初始化的是( )。
A.char word[]=’Trubo\0’;
B.char word[]=;
C.char word[]=;
D.char word[]=”Trubo\0”;
15.以下正确的定义语句是( )。
A.int A[‘a’]; B.int A[3,4]; C.int A[][3]; D.int A[10];

16.以下给字符数组str定义和赋值正确的是( )。
A.char str[10]; str=;
B.char str[]=;
C.char str[10]; strcpy(str,“abcdefghijklmnop”);
D.char str[10]=;

17.在执行char str[10]=”China\0”; strlen(str)的结果是( )。
A.5 B.6 C.7 D.9

18.在执行char str[10]=”Ch\nina\0”; strlen(str)的结果是( )。
A.5 B.6 C.7 D.9

19.当接受用户输入的含空格的字符串时,应使用( )函数。
A.scanf() B.gets() C.getchar() D.getc()

20.当输出含空格的字符串时,应使用( )函数。
A.printf() B.puts() C.putchar() D.putc()

5.2 填空题
1. 若有定义语句char c[10]=”hello”,s[]=”world”;,则字符数组c的长度为,字符数组c的长度为,字符串”hello”的长度是,字符串“world”的长度为_。
2. 字符串”hello,world!”的长度为,若有说明语句char s[]=”hello,world!”,则数组s的大小是。
3.以下程序执行时输入Language Programming<回车>的结果是。
#include <stdio.h>
main( )
{
char str[30];
scanf(“%s”, str);
printf(“str=%s\n”, str);
}

4.以下程序执行时输入Language Programming<回车>的结果是。
#include <stdio.h>
main( )
{
char str[30];
gets(str);
printf(“str=%s\n”, str);
}

5.以下程序的执行结果是。
#include <stdio.h>
main( )
{
int a[]=, i, j, s=0;
j=0;
for (i=3; i>=0; i--)
{
s=s+a[i]*j;
j=j*10;
}
printf(“s=%d\n”, s);
}

6.以下程序的执行结果是。
#include <stdio.h>
main( )
{
char str[]=;
int i;
for (i=0; str[i]!=’\0’; i++)
if (str[i]>=’0’ && str[i]<=’9’)
printf(“%c”, str[i]);
printf(“\n”);
}
5.3 程序设计题
1.从键盘输入5个整数,保存到数组a中,先正序输出再逆序输出
2.从键盘输入6个整数保存到数组中,求值最大的元素,将这个值最大的元素与数组的最后一个元素交换。最后输出整个数组
3.从键盘输入8个整数保存到数组中,运用选择法按从大到小排序后输出数组。
4.编程实现:从键盘输入10个字符,存储到字符型一维数组str中,再从键盘上输入另一个字符ch,要求将str中出现的第一个ch字符删除。将删除ch后的数组str输出到屏幕上。
5.编写程序实现:将两个字符串数组进行交换。
6.编程求两个3×4 (3行4列)矩阵之和,然后输出(矩阵元素的值从键盘输入)
7.定义一个4行5列的二维整型数组,对其进行赋值,然后从该数组中选择出一个最小数及该数的下标值(行和列的下标值都要记录)。
另外,虚机团上产品团购,超级便宜

『柒』 求《标准C语言基础教程(第四版)》的课后“编程练习”答案

这本书是没有答案的

『捌』 南昌大学c语言期末考试有题库吗

没有题库的, 不过每年都是类似的题目,考察的知识点都一样.

『玖』 C语言试题答案

1、就近;花括号
2、取模,x%10
3、不会~~,窘
4、没用过TC,专不会~~,窘
5、死循属环,while(1);
6、/**/,注释
7、是10 和10l 吧~~前者int,2个字节或者4个字节,后者long ,4个字节
8、不会~~,窘
9、printf("%ld",in);
10、步骤
11、循环变量的初值,循环条件和循环变量的增量,
12、关键字???
13、不会~~,窘
14、#define EMI 6688
15、一元
16、六
17、18、19懒的看了,LZ自己用printf(),看看结果
20、D
21、A
22、B
23、A
24、A
25、
26、C
27、
28、B、D,多选?
29、
30、B
31、D
32、 C
不一定正确~~问老师吧,窘

『拾』 求助四道c语言答案

(1) 49.
(2) 024.
(3)afternoon
evening
morning
night
(4)?题目是什么意思??
你的程序好多地方有问题!
1.
#include <stdio.h>
main()
{int a[10]={19,23,44,17,37,28,49,36},*p;
p=a;
printf("%d\n",(p+=3)[3]);
}
2.
#include<stdio.h>悄并镇
#define MAX 3
int a[MAX];
fun1()
{
int k,t=0;
for(k=0;k<MAX;k++,t++) a[k]=t+t;
}
fun2(int b[])
{
int k;
for(k=0;k<MAX;k++) printf("%d",*(b+k));
}
main()
{fun1();
fun2(a);
printf("\n");
}
3.
#include <启粗stdio.h>
void func(char *a[],int n)
{ int i,j,l;char *temp;
for(i=0;i<蔽迅n-1;i++)
{ l=i;for(j=i+1;j<n;j++)
if(strcmp(a[j],a[l])<0) l=j;
if(l!=i)
{temp=a[i];
a[i]=a[l];
a[l]=temp;
}
}
}
void main()
{
char *name[4],ch[4][15]={"morning","afternoon","night","evening"};
int k;
for(k=0;k<4;k++) name[k]=ch[k];
func(name,4); for(k=0;k<4;k++)
printf("%s\n",name[k]);
}

热点内容
四川农业大学申请考核博士 发布:2025-10-20 08:58:11 浏览:981
福田雷沃重工本科生待遇怎么样 发布:2025-10-20 08:53:49 浏览:575
华为要本科生吗 发布:2025-10-20 08:25:41 浏览:550
2008年青岛本科生工资 发布:2025-10-20 08:04:24 浏览:444
东北大学艺术考研 发布:2025-10-20 07:38:35 浏览:299
我的大学生活txt 发布:2025-10-20 07:35:28 浏览:25
人民大学外语系考研 发布:2025-10-20 07:31:12 浏览:894
上海交通大学考研辅导班 发布:2025-10-20 07:24:54 浏览:420
华中农业大学细胞生物学考研群 发布:2025-10-20 07:09:36 浏览:558
南京大学2016考研线 发布:2025-10-20 06:43:12 浏览:930