C语言基础知识综合练习题doc.docx
- 文档编号:12148726
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:33
- 大小:89.38KB
C语言基础知识综合练习题doc.docx
《C语言基础知识综合练习题doc.docx》由会员分享,可在线阅读,更多相关《C语言基础知识综合练习题doc.docx(33页珍藏版)》请在冰豆网上搜索。
C语言基础知识综合练习题doc
一、C语言数据类型与表达式
(一)选择题
1.设a,b和C都是int型变量,且a=3,b=4,c=5则下面的表达式中,值为零的表达式
是()。
A)'&'&&'b'B)a<=b
C)a||b+c&&b-cD)!
((a
C||1)
2.设ch是char型变量,其值为A字符,且有表达式:
ch=(ch>='A'&&ch<='Z')?
(ch+32):
ch,则表达式ch的值是()字符。
A)C语言程序总是从第一•个定义的函数开始执行
B)在C语言程序中,要调用的函数必须在main()函数中定义
0C语言程序总是从main。
函数开始执行
D)C语言程序中的mainO函数必须放在程序的开始部分
8.设intx=10,y=3,z;则语句printf("%d\n”,z=(x%y,x/y)):
的输出结果是
()o
9.C语言表达式10!
=9的值是(
A)trueB)非零值
10.合法的C语言字符常量是(
A)'\t'B)“A"
11.若int类型数据占两个字节,则下列语句的输出为()o
intk=-1;
printf("%d,%u\n",k,k):
A)-1,-1B)-1,32767C)-1,32768D)-1,65535
12.
A)子程序B)过程
C)函数D)主程序和子程序
组成C语言程序的是()。
13.
C)a=b=5
)o
C)k=2*4,k*4;
D)y二int(x);
D)y=float⑴
以下的选项中,正确的赋值语句是()o
A)i++;B)a=l,b=2;
14,以下不符合C语言语法的语句是(
A)i++;B)i=j=5;
15.下列程序的输出结果是()0
main(){inta=9;
printf("%d\n”,a);}
A)18B)9C)-18D)-9
16.下列语句的输出结果是()0
printf("%d\n",(int)(2.5+3.0)/3);
A)有语法错误不能通过编译B)2C)1D)0
17.下列程序的输出是()o
main(){inta=7,b=5;
printf("%d\n”,b=b/a):
}
A)有语法错误不能通过编译B)2C)1D)0
18.请阅读程序()o
main(){inta;floatb,c;
scanf(“%2d%3f%4f”,&a,&b,&c);
printf("\na=%d,b=%f,c=%f\n”,a,b,c);}
则上面程序的输出结果是
D)004
若运行时从键盘上输入9876543210
)o
B)a=10,b=432,c=8765
D)a=98,b=765.0,c=4321.0
A)a=98,b=765,c二4321
C)a=98,b=765.000000,c=4321.000000
19.以下程序的输出结果是()o
niain()
(inta=-l,b=4,k;
k=(++avO)&&!
(b--<=0);
printf("%d%d%d\n",k,a,b);}
A)104B)1030003
20.下列程序的输出结果是()o
niain()
(inti,j,k,a=3,b=2;
i=(--a==b++)?
--a:
++b;j=a++;k=b;
printf("i=%d,j=%d,k=%d\n",iJ,k);}
A)i=2,j=l,k=3B)i=l,j=l,k=2C)i=4,j=2,k=4D)i=l,j=l,k=3
(二)填空题
1.在C语言中,double类型数据占个字节;char类型数据占个字节。
2.设C语言中,int类型数据占2个个字节,则long类型数据占个字节;unsigned
int类型数据占个字节;short类型数据占个字节;
3.表达式8/4*(int)2.5/(int)(1.25*(3.7+2.37))值的数据类型为
4.假设m是一•个三位数,从左到右用a,b,c表示每一位的数字,若从左到右数字是bac的三位数,则在C语言中用m表示bac的表达式是
二、C语言选择和循环结构
1.在C语言中,能代表逻辑值“真”的是()0
A)trueB)大于0的数0非0整数D)非0的数
2.若给定条件表达式(M)?
(a++):
(a—);则其中表达式M
A)和(M=0)等价B)和(M=l)等价
C)和(M!
=0)等价D)和(M!
=l)等价
3.在C语言的if语句中,用作判断的表达式是()。
A)关系表达式B)逻辑表达式C)算术表达式D)任意表达式
4.若变量已正确定义,则以下程序段的输出为()o
inta=2;b=3;printf(a>b?
“***a二%d
A)没有正确的输出格式控制B)***a=2
C)###b=3D)***a=2####b=3
5.以下程序段的输出结果为()=
inta=l;b=2,c=2,t二0;
while(a
printf("%d,%d,%d”,a,b,c):
A)1,2,0B)2,1,0C)l,2,1D)2,1,3
6.已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是()。
if(x>y)z=x;x=y;y=z;
A)x=10,y=20,z=30
x=20,y=30,z=30
D)x=20,y=30,z=20
C)x=20,y=30,z=10
7.以下程序的运行结果是()o
main()
{intm=5;
if(m++>5)printf("%d\n”,m);
elseprintf("%d\n”,m--);}
A)4B)5C)6D)7
8.以下不正确的语句是()o
A)if(x>y);
B)if(x=y)&&(x!
=O)x+=y;
C)if(x!
=y)scanf("笔d”,&x);elsescanf("%d”,&y);
D)if(x 9.若w、x、y、z、m均为int型变量,则执行下面语句后的m值是()。 w=l;x=2;y=3;z=4;m=(w w: x;m=(ni m: y;m=(m m: z; A)1B)2C)3D)4 10.下面有关for循环的正确描述是()0 A)for循环只能用于循环次数已经确定的情况 B)for循环是先执行循环体语句,后判断表达式 C)在for循环中,不能用break语句跳出循环体 D)foi•循环的循环体中,可包含多条语句,但必须用花括号括起来 11.若i为整数变量,则以下循环执行的次数是()。 for(i=2;i==0;)printf("%d”,i—); A)无限次B)0次C)1次D)2次 12.执行语句for(i=l;i++<4;);后变量i的值是()。 A)3B)4C)5D)不定 13.以下正确的说法是()。 A)continue语句的作用是结束整个循环的执行 B)只能在循环体内和switch语句体内使用break语句 C)在循环体内使用break语句或continue语句的作用相同 D)在多层循环嵌套中退出时,只能使用got。 语句 14.以下程序的功能是判断输入的年份是否是闰年。 请在填入正确内容 main() (inty,f; scanf("%d",&y); if(y%400==0)f=l; elseif()f=l; else②; if(t)printf("%dis”,y); elseprintf("%disnot”,y); printf(t4aleapyear\n,,);} 15.有四个数a,b,c,d要求按从大到小的顺序输出清在内填入正确内容 main() (inta,b,c,d,t; scanf(“%d%d%d%d”,&a,&b,&c,&d);if(a if(②)(t=b;b=c;c=t;} if(b if(c printf(“%d%d%d%d\n'',a,b,c,d);} 16.以下程序的功能是()o从键盘输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。 main() (floatx,amax,amin; scanf("%f',&x); amax=x; amin=x; while(①) (if(x>amax)amax=x; if(②)amin=x; scanf(“%f',&x);} printf("\namax=%f\naniin=%nn”,amax,amin); } 17.以下程序的功能是计算1-3+5-7+……-99+101的值,请填空。 main() (inti,t=l,s=0; for(i=1;iv=101;i+=2) {①;s=s+t;②;} printf("%d\n”,s); I成.main() {inti,t=l,s=0; for(i=1;i<=101;i+=2) (_s=s+t*i;③: } printf("%d\n",s); } 18.若用0至9之间不同的三个数构成一个三位数,下面程序统计出共有多少种方法。 请填空。 main() {inti,j,k,count=0; for(i=1;i<=9;i++) for(j=0;j<=9;j++) if(①)continue; elsefor(k=0;k<=9;k++) if(②)count++; printf("%d",count); } 19.下面的程序功能是打印100以内个位数为6,且能被3整除的所有数。 请填空。 main() {inti,j; for(i=0;Q;i++) {j=i*10+6; if(②)continue; printf("%d”,j);}} 三、C语言数组 (一)选择题 1.以下对C语言字符数组的描述错误的是()0 A)字符数组可以存放字符串 B)字符数组中的字符半可以整体输入、输出 C)可以在赋值语句中通过赋值运算符对字符数组整体赋值字符申 D)不可以用关系运算符对字符数组中的字符串进行比较 2.不能把字符申HellO! 赋给数组b的语句是()。 A)charb[10]={'H','e',T,T,'o','! '}; B)charb[10];b="Hello! "; C)charb[10]={'\0'}; D)charb[10]=“Hello! ”; 3.合法数组定义是()= A)inta[]=''string"; B)intaf5]= {0,123,4,5}; C)chara=”string”; D)chara|J: ={0,123,4,5}; 4.以下能对二维数组a进行正确初始化的语句是()。 A)inta[2][]={{l,0,l},{5,2,3}}; B)inta[][3]={{l,2,3},{4,5,6}}; C)inta⑵[4]={{1,2,3},{4,5},{6}}; D)inta[][3]=({1,0,1}{},{U}}; 5.若有说明inta[3][4]={0};则下面正确的叙述是()。 B)整型表达式 D)任何类型的表达式 )o B)intn=10,a[n]; D)#defineSIZE10 inta[SIZEJ; A)只有元素a[0][0]可得到初值0 B)此说明语句不正确 C)数组a中各元素都可得到初值,但其不一定为0 D)数组a中各元素都可得到初值0 6.在C语言中,引用数组元素时,其数组下标的数据类型允许是()。 A)整型常量 C)整型常量和整型表达式 7.以下对一维整型数组a的正确说明是( A)inta(10); C)intn; scanf("%d”,&n); inta[n]; 8. 10. 11. 12. A)inta[3]f];B)floata(3,4); C)doublea[1][4];D)floata(3)(4); 若有说明inta[3][4];则对a数组元素的正确引用是( A)a[2][4]B)a[l,3]C)a[l+l][0] 若有说明inta[3][4];贝寸对a数组元素的非法引用是( A)a[0][2*l]B)a[l][3]C)a[4-2][0] 对inta[10]={6,7,8,9,10};说明语句的正确理解是( )o D)a (2)(l) )。 D)a[0][4])o A) B) C) D) 将5个初值依次赋给a[l]至af5],其余元素赋。 值; 将5个初值依次赋给a[0]至a[4],其余元素赋0值; 将5个初值依次赋给a[6]至a[10],其余元素赋。 值; 因为数组长度与初值的个数不相同,所以此语句不正确; 13. 14. 15. 定义如下变量和数组intk;inta[3][3]={1,2,3,4,5,6,7,8,9}; 则执行for(k=0;k<3;k++)printf(“%d”,a[k][2・k])^句的输出结果是( A)357B)369C)159D)147 判断字符申a和b是否相等,应当使用( A)if(a==b)B)if(a=b)判断字符申si是否大于字符出s2, A)if(sl>s2) C)if(stremp(s2,sl)>0) )□ C)if(strcpy(a,b))应当使用()。 B)if(stremp(sl,s2)) D)if(stremp(sl,s2)>0) D)if(strcmp(a,b)) 若有说明inta[I0J;则对a数组元素的正确引用是()。 A)afl0]B)a[3.5]C)a(5)D)afl0-10] 9.以下对二维数组a的正确说明是()o 16. 下面程序段的功能是将字符串s中所有的字符c删除。 请选择填空。 #include {chars[801; inti,j; gets(s); for(i=j=0;s[i]! ='\0';i++) if(s[i]! ='c'); s|j]='\O';puts(s);} A) C)s[j]=s[i];j++D)s[j]=s[i] )o B)scant'(“%s%s”,a,b); D)gets(“a”),gets(“b”); s[j++]=s[i]B)s[++j]=s[i] 17.有两个字符型数组』b,则以下正确的输入格式是( A)gets(a,b); C)scanf("%s%s",&a,&b); 18.对两个数组a和b进行如下初始化, charalJ={ charbl]=,,ABCDEF,; )o 则以下叙述正确的是( A) B)a与b数组长度相同 D)b数组比a数组长度长 a与b数组完全相同 C)a与b中都存放字符串 (二)填空J 1.下面程序的功能是将字符申a下标值为偶数的元素由小到大排序,其它元素不变。 请填空。 #include (chara[]=Tabchmfye”,t; inti,j; for(i=0;i<7;i+=2) for(j=i+2;.j<9;①) if(②) it=a[i];a[i]=a[j];a[j]=t;j++;} puts(a);printf("\n”);} 2.下血程序以每行4个数据的形式输出a数组,请填空。 #defineN20 main() (inta[N],i; for(i=0;i for(i=0;i {if(®)③ printf("%3d”,a[i]);} printf("\n”);) 3.下面程序是分别求出矩阵a的两条对角线上的元素之和。 请填空。 main() {inta[3][3]={1,3,6,7,9,11,14,15,17),suml=O,sum2=0,i,j; for(i二0;i<3;i++) for(j=0;j<3;j++) if(i==j)suml=suml+a[i][j]; for(i=0;i<3;i++) for(①;②;j--) if((i+j)==2)sum2=sum2+a[i][j]: printf(usuml=%d,sum2=%d\n'',sunil,sum2);) 4.下面程序功能是检查一个二维数组是否对称(即对所有ij都有a[i]U]=aU][i])o请填空。 main() (inta[4][4]={1,2,3,4,2,2,5,6,3,5,3,7,4,6,7,4); inti,j,found: 。 ; for(j=0;j<4;j++) for(®;i<4;i++) if(a[j][i])! =a[i][j] (®;break;} if(found)printf("no”); elseprintf("yes”);} 5.下面的程序段将输出computer,请填空。 charc[]="h'sacomputer"; for(i=0;①: i++) {@: printfC%c",c[j]);} 6.下面的程序功能是在三个字符申中找出最小的。 请填空。 #include #include main() {chars[20],str[3][20]: inti; for(i=0;i<3;i++)gets(str[i]); strcpy(s,①): if(strcnip(str[2],s)<0)strcpy(s,str[2]); printf("%s\n”,②);} 7.若有定义inta[3][4]={{l,2},{0},{4,6,8,10}};则初始化后,a[l][2]得到的初值是 ①,a[2J[l]得到的初值是一②o 8.设数组a中的元素均为正整数,以下程序是求a中偶数的个数和偶数的平均值。 请填空。 main() {inta[10]={1,2,3,4,5,6,7,8,9,10};intk,s,i;floatave; tbr(k=s=i=0;ivl0;i++) {if(a[i]%2! =0)①; s+=②; k++;} if(k! =0)(ave=(float)s/k;printf(4<%d,%f\n,\k,ave);}} 9.下面程序段的运行结果是()。 charx[]=''theteacher,,;i=0; while(x[++i]=\0‘)if(x[i・l]='t')printf("%c",x[i]); 10.下血程序段是输出两个字符申中对应字符相等的字符。 请填空。 charx[]=,,programming,; chary[]="Fortran''; inti=0; while(x[i]! ='\0'&&y[i]! ='\0') {if(xfi]==yfi])printf("%c”,); elsei++;}… 四、c语言函数与编译预处理 (一)选择题 1.有以下函数调用语句,其实参数的个数是()。 fun(a+b,(x,y),fun(n+k,d,(a,b))); A)3B)4C)5D)6 2.C语言规定,程序中各函数之间()。 A)既允许直接递归调用又允许间接递归调用 B)不允许直接递归调用也不允许间接递归调用 0允许直接递归调用但不允许间接递归调用 D)不允许直接递归调用但允许间接递归调用 3.C语言中,函数的隐含存储类别是()。 A)autoB)staticC)externD)无存储类别 4.在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量, 则该变量需要使用的存储类别是()0 A)externB)registerC)autoD)static 5.C语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是()o A)地址传递B)单向值传递 C)山实参传递给形参,再山形参传同给实参D)山用户指定传递方式 6.C语言允许函数类型缺省定义,此时该函数返同值隐含的类型是()。 A)float型B)hit型C)long型D)double型 7. )o C语言规定,函数返网值的类型是山( A)return语句中的表达式类型所决定 B)调用该函数时的主调函数类型所决定 C)调用该函数时系统临时决定 D)在定义该函数时所指定的函数类型所决定 8.以下符合C语言规定的正确描述是()。 A)函数的定义可以嵌泰,但函数的调用不可以嵌套 B)函数的定义不可以嵌套,但函数的调用可以嵌套 C)函数的定义和函数的调用均不可以嵌套 D)函数的定义和函数的调用均可以嵌套 9.如用数组名作为函数调用的实参,传递给形参的是()o A)数组的首地址B)数组第一个元素的值 0数组中全部元素的值D)数组元素的个数 10.以下不正确的说法是()。 A)在不同函数中可,以使用相同名的变量
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 基础知识 综合 练习题 doc