c练习题.docx
- 文档编号:11146753
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:13
- 大小:18.88KB
c练习题.docx
《c练习题.docx》由会员分享,可在线阅读,更多相关《c练习题.docx(13页珍藏版)》请在冰点文库上搜索。
c练习题
练习题
一、选择题:
1.C程序由【】组成。
A、子程序B、主程序和子程序C、函数D、过程
2.以下不正确的C语言标识符是【】。
A、intB、a_1_2C、ab1exeD、_x
3.下面各选项组中,均是C语言关键字的组是【】。
A、auto,enum,includeB、switch,typedef,continue
C、signed,union,scanfD、if,struct,type
4.C语言程序从main()函数开始执行,所以这个函数要写在【】。
A、程序文件的开始B、程序文件的最后
C、它所调用的函数的前面D、程序文件的任何位置
5.x为int型变量,且x=65,不正确的输出函数调用是【】
A、printf(“%d”,x);B、printf(“%3d”,x);C、printf(“%c”,x);D、printf(“%s”,x);
6.语句a=(3/4)+3%2;运行后,a的值为【】。
A、0B、1C、2D、3
7.若有说明:
ints[4][5];则对a数组元素的非法引用是【】
A、s[0][2*1]B、s[1][3]C、s[4-2][0]D、s[0][5]
8.以下说法错误的是【】。
A、do-while语句与while语句的区别仅是关键词“while”出现的位置不同
B、while语句是先进行循环条件判断,后执行循环体
C、do-while是先执行循环体,后进行循环条件判断
D、while、do-while和for语句的循环体都可以是空语句
9.在C语言中,引用数组元素时,其数组下标的数据类型允许是【】。
A、整型常量B、整型常量或整型表达式
C、整型表达式D、任何类型的表达式
10.执行语句printf("%x",-1);屏幕显示【】。
A、-1B、1C、-ffffD、ffff
11.将空格符赋给字符变量c,正确的赋值语句是【】。
A、c='\0'B、c=NULLC、c=0D、c=32
12.字符串”Iamastudent.”在存储单元中占【】字节
A、3B、4C、16D、17
13.逗号表达式"(a=3*5,a*4),a+15"的值是【】。
A、15B、60C、30D、不确定
14.调用函数时,基本类型变量作函数实参,它和对应的形参【】
A、各自占用独立的存储单元B、共占用一个存储单元
C、同名时才能共用存储单元D、不占用存储单元
15.已知intx=1,y=1,z=1;表达式"x+++y+++z++"的值是【】。
A、3B、4C、5D、表达式错误
16.C语言中主函数的个数是【】。
A、2个B、1个C、任意个D、10个
17.下列关于main()函数说法正确的是【】。
A、C语言程序总是从main()开始执行
B、C语言程序可以没有main()函数
C、C语言程序可以包含多个main()函数,但必须在不同的模块中
D、C语言程序中main()函数不能有形式参数
18.根据C语言的语法规则,下列【】是用户定义的合法标识符。
A、2abB、@fC、?
bD、_a12
19.若有定义:
inta,b;doublex;则以下不符合C语言语法的表达式是【】。
A、x%(-3)B、a+=-2C、a=b=2D、x=a+b
20.若有说明:
intc[3][5];则对c数组元素的正确引用是【】。
A、c[2][5]B、c[1,3]C、c[1+1][0]D、c
(2)
(1)
21.执行inta[][4]={2,3,5,7,8,9,11,13,15};语句后,a[1][2]的值是【】。
A、11B、3C、5D、9
22.在C语言中,错误的int类型的常数是【】。
A、32768B、0C、037D、0xAF
23.将字符g赋给字符变量c,正确的表达式是【】。
A、c=\147B、c="\147"C、c='\147'D、c='0147'
24.下列关于C语言的叙述错误的是【】。
A、大写字母和小写字母的意义相同
B、不同类型的变量可以在一个表达式中
C、在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型
D、同一个运算符号在不同的场合可以有不同的含义
25.逗号表达式"(a=3*5,a*4),a+15"的值为【】。
A、15B、60C、30D、不确定
26.以下程序运行结果是【】。
#defineM(x,y,z)x*y*z
#include
voidmain()
{inta=1,b=2,c=3;
printf("%d\n",M(a+b,b+c,c+a));}
A、60B、15C、20D、程序错误
27.以下不是死循环的语句是【】。
A、for(;;y+=i++);
B、while(a)y+=i++;
C、do{y+=i++}while(a>0);
D、for(b=0;(c=getchar()!
=’\n’);)b++;
28.在C语言中,二维数组元素在内存中的存放顺序是【】。
A、按行存放B、按列存放
C、由用户自己定义D、由编译器决定
29.判断char型变量c是否为小写字母的正确表达式为【】。
A、’a’<=c<=’z’B、(c>=a)&&(c<=z)
C、(‘a’<=c)||(‘z’>=c)D、(c>=’a’)&&(c<=’z’)
30.若执行语句a-=a+=a*=10;a的值为【】。
A、0B、-10C、-100D、100
二、填空题:
1.函数的实参传递到形参有两种方式:
【1】和【2】。
2.若定义:
floatx=3.5;intz=8;则表达式x+z%3/4的值为【3】。
3.语言中的变量,按作用域范围分为:
【4】和【5】。
4.C语言中,头文件的扩展名是:
【1】,包含头文件的预编译命令是:
【2】。
5.在C语言中,以【3】作为一个字符串的结束标记。
6.C语言中,从函数定义角度,函数分为:
【4】和【5】。
三、程序阅读理解题:
认真阅读下列程序,分别写出程序的运行结果。
1.voidmain()
{inti,j,m,n;
i=8;j=10;m=++i;n=j++;
printf("%d,%d,%d,%d",i,j,m,n);
}
2.#include
voidmain()
{
intn=12345,d;
while(n!
=0)
{
d=n%10;
printf("%d",d);
n/=10;
}
}
3.main()
{inta=1,b=0;
switch(a)
{case1:
switch(b)
{case0:
printf("**0**");break;
case1:
printf("**1**");break;
}
case2:
printf("**2**");break;
}
}
4.intfun(intn)
{
if(n==0)return1;
returnfun(n-1)*n;
}
#include
voidmain()
{
intc=4;
printf(“%d”,fun(c));
}
5.#include
voidmain()
{
inta,b;
for(a=1,b=1;a<=100;a++)
{
if(b>=20)
break;
if(b%3==1)
{b+=3;
continue;}
b-=5;
}
printf(“%d”,a);
}
6.intfac(intn)
{
staticintf=1;
f=f*n;
returnf;
}
#include
voidmain()
{
inti;
for(i=1;i<=4;i++)
printf(“%5d”,fac(i));
}
7.intx1=30,x2=40;
#include
sub(intx,inty)
{x1=x;x=y;y=x1;}
voidmain()
{
intx3=10,x4=20;
sub(x3,x4);
sub(x2,x1);
printf(“%d,%d,%d,%d\n”,x3,x4,x1,x2);
}
8.#defineSQR(x)x*x
#defineADD(a,b)a+b
#include
voidmain()
{
inta=2,b=3,c;
c=ADD(SQR(a),SQR(b));
printf(“%d\n”,c);
}
四、程序填空题:
1.该函数功能是将一维数组的数组元素倒置。
#include
#defineN10
voidconvert(intdata[])
{inti;
for(i=0;i {intt; 【1】; 【2】; 【3】;} } 2.下面程序段的功能是用辗转相除法求两个正整数m和n的最大公约数。 hcf(intm,intn) {intr; if(m {r=m; 【4】; n=r; } r=m%n; while(【5】) {m=n; n=r; r=m%n; } 【6】; } 3.面程序的功能是输出100以内的个位数为6、且能被3整除的所有数。 main() {inti,j; for(i=0;【7】;i++) {j=i*10+6; if(【8】)countinue; printf("%d",j); } } 4.下面程序的功能是从键盘上输入若干学生的学习成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入。 main() {floatx,amax,amin; scanf("%f",&x); amax=x; amin=x; while(【9】) {if(x>amax)amax=x; if(【10】)amin=x; scanf("%f",&x); } printf("\namax=%f\namin=%f\n",amax,amin); } 5.函数的功能是求1到100的和。 #include intsummation(intn) {inti,sum; for(i=1,sum=0;i<=n;i++) {【1】;} returnsum;} voidmain() {intsum,n=100; 【2】; printf(“sum=%d\n”,sum);} 6.下面程序的功能是计算1-3+5-7+……-99+101的值。 main() {inti,t=1,s=0; for(i=1;i<=101;i+=2) {【3】; s=s+t; 【4】; } printf("%d\n",s); } 7.下面程序的功能是读入20个整数,统计非负数个数,并计算非负数之和。 #include"stdio.h" main() {inti,a[20],s,count; s=count=0; for(i=0;i<20;i++) scanf("%d",【5】); for(i=0;i<20;i++) {if(a[i]<0) 【6】; s+=a[i]; count++; } printf("s=%d\tcount=%d\n",s,count); } 8.下面程序的功能是显示具有n个元素的数组s中的最大元素。 #defineN20 main() {inti,a[N]; for(i=0;i scanf("%d",&a[i]); printf("%d\n",【7】); } fmax(ints[],intn) {intk,p; for(p=0,k=p;p if(s[p]>s[k])【8】; return(k); } 9.下面程序的功能是不用第三个变量,实现两个数的对调操作。 #include main() {inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a=a+b; b=【9】; a=【10】; printf("a=%d,b=%d\n",a,b); } 五、编程题: 1.编写判断一个自然数N是否为素数的函数,然后调用它判断并输出2~100之间的所有素数。 素数是指一个大于1的自然数,除了1和它本身外,不能被其他自然数整除。 2.编写判断某年N是否为闰年的函数,然后调用它判断并输出2015~2050年之间的所有闰年。 N为闰年需满足以下二个条件之一: ①能被4整除但是不能被100整除;②能被400整除。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 练习题