C语言程序设计综合练习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言程序设计综合练习题
一、选择题
C(1)以下叙述中正确的是
A)C语言比其他语言高级
B)C语言可以不用编译就能被计算机识别执行
C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
D)C语言出现的最晚,具有其他语言的一切优点
a.错误,c语言是由B语言发展过来,是低级语言向高级语言发展的过渡语言,而且更偏向底层~~java和C#才算是高级语言
b、明显错误,C语言是编译型语言,需要编译执行
d、这就错的更离谱了,现在微软都在研制F#,C怎么可能最晚?再说,java和c#都比它晚了,再说一下,C语言的主要优点是简洁紧凑、可移植性强,由指针这一特色,更能操作底层,它没有java的跨平台性,没有C#的通俗性。。。
最后,说下C,早期的C在贝尔实验室研制出来的,用于做数值计算和一些数学模型的求解,所以更接近自然语言和数学语言
B(2)在一个C语言程序中
A)main()函数必须出现在所有函数之前
B)main()函数可以在任何地方出现
C)main()函数必须出现在所有函数之后
D)main()函数必须出现在固定位置
B(3)下列关于C语言用户标识符的叙述中正确的是
A)用户标识符中可以出现下划线和中划线(减号)
B)用户标识符中不可以出现中划线,但可以出现下划线
C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头
D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头
A不能出现中划线
C下划线可以放在开头
D数字不能放开头
D(4)下列关于单目运算符++,--的叙述中正确的是
A)它们的运算对象可以是任何变量和常量
B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量 D)它们的运算对象可以是char型变量、int型变量和float型变量
A(5)有以下程序段:
int m=0,n=0;char c=′a′;
scanf(″%d%c%d″,&m,&c,&n);
printf(″%d,%c,%d\n″,m,c,n);
若从键盘上输入:10A10<回车>,则输出结果是
A)10,A,10 B)10,a,10 C)10,a,0 D)10,A,0
格式字符%d用于输入整数,%c用于输入字符。在输入时,系统把第一个10作为整数10赋给m,把随后的A作为字符赋值给c,后面的10作为整数赋给n,最后输出的结果为
10,A,10printf语句中,屏幕输出时所显示的间隔符应与输出格式项之间的间隔符一致。
C(6)有以下程序:
main()
{ int i=1,j=1,k=2;
if((j++ k++)&&i++) printf(″%d,%d,%d\n″,i,j,k);
}
执行后输出结果是
A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3
C语言中,执行“‖”运算的两个操作数,若有1个值为1,则整个表达式的值都为1。若该运算符左边操作数的值为1,则就不继续执行其右边的操作数,故最终i,j,k的值为2,2,2。
D(7)有以下程序:
main()
{ int p[7]={11,13,14,15,16,17,18},i=0,k=0;
while(i<7 && p[i]%2){k=k+p[i];i++;}
printf(″%d\n″,k);
}
执行后输出结果是
A)58 B)56 C)45 D)24
程序的功能是计算数组中满足条件的数的累加和(遇到第一个偶数为止)。
B(8)有以下程序:
main()
{ int i=10,j=1;
printf(″%d,%d\n″,i--,++j);
}
执行后输出结果是
A)9,2 B)10,2 C)9,1 D)10,1
自增运算符“++”和自减运算符“--”放在变量之后表示,在使用变量之后,再使变量的值加1或减1。若放在变量之前则表示在使用变量之前,先使变量的值加1或减1。
C(9)有以下程序:
int f1(int x,int y)
{ return x>y?x:y;}
int f2(int x,int y)
{ return x>y?y:x;}
main()
{ int a=4,b=3,c=5,d,e,f;
d=f1(a,b);d=f1(d,c);
e=f2(a,b);e=f2(e,c);
f=a+b+c-d-e;
printf(″%d,%d,%d\n″,d,f,e);
}
执行后输出结果是
A)3,4,5 B)5,3,4 C)5,4,3 D)3,5,4
函数f1()的功能是返回两数中的较大值,函数f2()的功能是返回两数中的较小值,所以经过两次赋值后,d=5,e=3,f=a+b+c-d-e=4。
D(10)若程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是
A) int*i=NULL; B) float*f=NULL;
scanf(″%d″,i); *f=10.5;
C)chart=′m′, *c=&t; D) long*L;
*c=&t;L=′\0′;
选项C)显然不对。选项A),B),D)从语法上讲都是可以的,但内存中地址为NULL,即地址0的单元不能随意存放用户数据,因为这样可能会破坏其他程序。选项D)中尽管用了′\0′(在内存中也为0),但并未向该单元存放数据,故该项正确。