C语言复习题.docx
- 文档编号:7078953
- 上传时间:2023-01-17
- 格式:DOCX
- 页数:13
- 大小:22.08KB
C语言复习题.docx
《C语言复习题.docx》由会员分享,可在线阅读,更多相关《C语言复习题.docx(13页珍藏版)》请在冰豆网上搜索。
C语言复习题
C语言复习题
一、选择题
1、下列数据中,为字符串常量的是(C)
A、‘M’B、‘$you’C、”hello”D、basic
2、若y为int型变量,则执行以下语句后,y的值是(C)
y=8;y+=y-=y*y;
A、64B、-56C、-112D、-48
3、下面程序
#include
main()
{
intx,y,z;
x=2;
y=x++;
z=++x;
printf(“%d\t%d\t%d\n”,x,y,z);
}
运行后输出的数据是(A)
A、424B、422
C、244C、444
4、C语言提供合法的数据类型关键字是
A、DoubleB、shortC、integerD、Char
5、错误的转义字符是
A、'\091'B、'\\'C、'\0'D、'\''
6、scanf()函数称为
A、格式输入函数B、字符输入函数C、字符串输入函数D、无格式输入函数
7、getchar()和putchar()函数的头文件是
A、strio.hB、stdio.hC、math.hD、string.h
8、下列运算符中,只能用于整型数据的是
A、+B、-C、/D、%
9、若有定义:
inta=7;floatx=3.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是
A、2.750000B、0.00000C、3.500000D)、2.500000
10、设有定义intm=10;则以下错误的表达式是
A、m++=15B、m=m++C、256D、m
11、定义为void类型的函数,其含义是
A、调用函数后,被调用的函数没有返回值
B、调用函数后,被调用的函数不返回值
C、调用函数后,被调用的函数返回值为任意类型
D、以上说法都是错误的
12、有定义语句intw[5];则数组w占用多少个字节的内存单元
A、5B、10C、20D、40
13、如果x为float类型变量,则以下语句输出为
x=213.82631;
printf(“%4.2\n”,x);
A、宽度不够,不能输出B、213.82C、213.82631D、213.83
14、若运行时给变量x输入12,则以下程序的运行结果是
#include
main()
{intx,y;
scanf(“%d”,&x);
y=x>10?
x+10:
x-12;
printf(“%d\n”,y);
}
A、0B、22C、12D、10
15、下列程序输出的结果是
#include
main()
{
inta=9;
a+=a-=a+a;
printf(“%d”,a);
}
A、18B、9C、-18D、-9
16、若有说明:
inta[3][4];则对数组元素的非法引用是
A、a[0][2*1]B、a[0][4]C)、a[4-2][0]D、a[1][3]
17、以下不是C语言的特点的是()
A、C语言简洁、紧凑
B、能够编制出功能复杂的程序
C、C语言可以直接对硬件进行操作
D、C语言移植性好
18、以下不正确的C语言标识符是(D)
A、ABCB、abcC、a_bcD、ab.c
19、一个C语言程序是由(B)
A、一个主程序和若干子程序组成
B、函数组成
C、若干过程组成
D、若干子程序组成
20、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是(B)
A、有零个或多个输入
B、有零个或多个输出
C、有穷性
D、可行性
21、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为(C)
A、intB、floatC、doubleD、不确定
22、在C语言中,char型数据在内存中的存储形式是(D)
A、补码B、反码C、源码D、ASCII码
23、有如下程序,输入数据:
12345M678<cR>后(
#include
main()
{
intx;
floaty;
scanf("%3d%f",&x,&y);
}
A、12345B、123C、45D、345
24、若有以下定义inta,b;floatx,则正确的赋值语句是(B)
A、a=1,b=2
B、b++;
C、a=b=5
D、b=int(x);
25、以下程序的执行结果是(A)
#include
{
inti=10,j=10;
printf("%d,%d\n",++i,j--);
}
A、11,10B、9,10C、11,9D、10,9
26、巳知字母A的ASCII码是65,以下程序的执行结果是(D)
#include
main()
{
charc1='A',c2='Y';
printf("%d,%d\n",c1,c2);
}
A、A,YB、65,65C、65,90D、65,89
27、下列运算符中优先级最高的是()
A、<B、十C、%D、!
=
28、判断char型变量cl是否为小写字母的正确表达式为(D)
A、’a’<=c1<=’z’B、(c1>=a)&&(c1<=z)
C、(‘a’>=c1)(‘z’<=c1)D、(c1>=’a’)&&(c1<=’z’)
29、字符串"a"在内存中占据的字节个数为(C)
A、0B、1C、2D、3
30、下面有关for循环的正确描述是(D)
A、for循环只能用于循环次数已经确定的情况
B、for循环是先执行循环体语句,后判定表达式
C、在for循环中,不能用break语句跳出循环体
D、for循环体语句中,可以包含多条语句,但要用花括号括起来
31、下面程序的运行结果是(C)
#include
main()
{
intnum=0;
while(num<=2)
{
num++;
printf(“%d,num);
}
}
A、1
B、12
C、123
D、1234
32、以下描述正确的是(C)
A、由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。
B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号。
C、在do-while循环体中,一定要有能使while后面表达式的值变成零(“假”)的操作。
D、do-while循环中,根据情况可以省略while。
33、以下对二维数组a的正确说明是(C)
A、inta[3][];B、floata(3,4);
C、doublea[1][4];D、floata(3)(4);
34、若二维数组a有m列,则在a[j]前面的元素个数为(B)
A、j*m+i
B、i*m+j
C、i*m+j-1
D、i*m+j+1
35、下面不正确的字符串常量是(A)
A、'abc'B、"12'12"C、"0"D、""
36、以下选项中不合法的用户标识符是(A)
A、abc.cB、fileC、MainD、PRINT
37、在C语言中,逻辑值"真"的表示是用(C)。
A、trueB、整型值0C、非0整型值D、T
38、设C语言中,int类型数据占2个字节,则float类型数据占(D)个字节。
A、1B、2C、8D、4
39、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3'后,c2中的值为(A)。
A、DB、68C、不确定的值D、C
40、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()。
A、必须为大写
B、必须为下划线
C、必须为字母或下划线
D、可以是字母、数字和下划线中的任一种字符
41、一个C语言程序总是从(C)开始执行
A、书写顺序的第一个函数
B、书写顺序的第一条执行语句
C、主函数main()
D、不确定
42、设intx=3,y=4,z=5,则下列表达式中的值为0的是(D)
A、‘x’&&’y’B、x||y+z&&y-zC、x<=yD、!
((x z||1) 43、执行以下程序段后,i的值是(C) inti=10; switch(i+1) {case10: i++;break; case11: ++i; case12: ++i;break; default: i=i+1; } A、11B、13C、12D、14 44、语句while(! e);中的条件! e等价于(A) A、e==0B、e! =1C、e! =0D、运行时出错 45、用inta[4]={1,2};对数组进行初始化后,数组元素a[3]的值是(B) A、随机值B、0C、1D)、F 46、在执行charstr[10]=“china\0”;strlen(str)的结果是(A) A、5B、6C、7D、9 47、用C语言编写的代码程序(B) A、可立即执行B、是一个源程序C、经过编译即可执行D、经过编译解释才能执行 48、C语言中用于结构化程序设计的三种基本结构是(A) A、顺序结构、选择结构、循环结构B、if、switch、breakC、for、while、do-whileD、if、for、continue 49、下列选项中,不能用作标识符的是(D) A、_1234_B、_1_2C、int_2_D、2_int_ 50、在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则(B) A、称为函数的直接递归调用B、称为函数的间接递归调用 C、称为函数的循环调用D、C语言中不允许这样的递归调用 51、完成C源文件编辑后、到生成执行文件,C语言处理系统必须执行的步骤依次为(D) A、连接、编译B、连接、运行 C、编译、运行D、编译、连接 52、下列说法正确的是(B) A、一个c语言程序并非总是从主函数位置开始执行的 B、一个c语言程序有且只有一个主函数 C、函数可以嵌套定义,不可以嵌套调用 D、程序函数的位置不可以任意 53、下面是合法C语言标识符的是( D ) A、2A_K;B、_M+N; C、–M3;D、AC_2; 54、下列格式符中,可以用于控制字符输出的是(D) A、%dB、%f C、%oD、%c 55、设x、y、z和k都是int型变量,则执行表达式x=(y=4,z=16,k=30)后,x的值是(C) A、4;B、16; C、30;D、50; 二、填空题 1、C语言是由函数构成的,作为程序入口和出口的函数是。 2、C语言规定标识符只能由字母、和三种字符组成。 3、将下列数学式改写成C语言的表达式: a=b或a 4、在内存中,二维数组存放的顺序是。 5、若有定义: doublea[3][5];则数组a中第一个元素为a[0][0],最后一个元素为。 6、在C语言中,表示逻辑"真"值用1. 7、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是8。 8、若x是int型变量,则执行下面表达式后,x的值为12。 x=(a=4,6*2) 9、若k为int整型变量且赋值7,请写出赋值表达式k*=k+3的运算结果70。 10、scanf函数是一个标准库函数,它的函数原型在头文件stdio.h中。 11、getchar函数可以接收单个字符,输入数字也按字符处理。 12、在语句中,给变量赋值时,赋值语句必须以分号结尾。 13、当a=3,b=2,c=1时,表达式f=a>b>c的值是0 14、设x,y,z均为int型变量,请写出描述"x,y中有一个为负数"的表达式x<0&&y>=0||y<0&&x>=0 15、若a=6,b=4,c=3,则表达式a&&b||b-c的值是1 16、设x=3,y=-4,z=5,则表达式! (x>y)+(y! =z)||(x+y)&&(y=z)的值是1 17、设inta=5,c=32;floatb=2.5;,表达式b+c/a的值为8.5。 18、若x和a均是int型变量,则计算x=(a=4,6*2)后x的值是12。 19、设a=3,b=4,c=5。 则a+b>c&&b==c的值为0。 20、有如下程序段: intk=10;while(k=0)k=k-1;则循环体语句执行0次。 三、阅读下列程序,分析程序结果。 1、#include main() { inta[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) if(i==j) sum=sum+a[i][j]; printf("sum=%d\n",sum); } 答: 功能: 出矩形阵a的主对角线上的元素之和。 输出结果: 27 2、#include main() {charch=’A’; ch=(ch>=’A’&&ch<=’Z’)? (ch+32): ch; printf(“%c”,ch); } 答: 程序的运行结果是: a 3、#include main() {intsum=0,i=11; while(i<=10) { sum=sum+i; i++; } printf(“%d”,sum); } 答: 程序的运行结果是: 0 4、#include voidfun(intn) { staticx=1; x*=n; printf("x=%d\n",x); } voidmain(void) { inti; for(i=1;i<8;i++) if(i%2)continue; elsefun(i); } 答: 程序执行结果: x=2 x=8 x=48 答: 程序的运行结果是: 123 5、#include main() {inta,b; a=5; b=8; p(a,b); p(a+b,a); } p(intx,inty) { y=x+y; printf(“%d%d”,x,y); } 答: 程序的运行结果是: 5131318 6、#include main() { inta,s,n,count; a=2; s=0; n=1; count=1; while(count<=7) { n=n*a; s=s+n; ++count; } printf("s=%d",s); } 答: 求S=0+2+4+8+16+32+64+128和,程序执行结果: s=254 7、#include main() {inti,j,m,n; i=8; j=10; m=++i; n=j++; printf(″%d,%d,%d,%d″,i,j,m,n); } 答: 输出结果: 9,11,9,10 8、#include intfac(intn) {staticintf=1; f=f*n; return(f); } main() {inti; for(i=2;i<=5;i++) printf(“%d! =%d\n”,i,fac(i)); } 答: 输出结果: 2! =2 3! =6 4! =24 5! =120 四、按要求编写程序 1、满足a^2+b^2=c^2的一组正整数a、b、c,称为勾股数组。 试用输出100以内的所有勾股数组。 2、从键盘给3×4的二维数组输入12个整数,求该数组各元素之和与最小的元素值。 3、求100至1000之间的所有素数。 4、编一函数用选择法或起泡法实现排序功能。 5、试编程判断输入的正整数是否既是5又是7的正倍数。 若是,则输出yes;否则输出no。 #include main() {intx; scanf("%d",&x);if(x%5==0&&x%7==0) printf("yes");else printf("no");} 6、判断数m是否为素数(只能被1和它本身整除的整数) #include #include main() {intm,i,k; scanf("%d\n",&m); k=sqrt(m);for(i=2;i<=k;i++) {if(m%i==0) break;} if(i>k) printf("misaprimenumber! \n"); 7、编写程序,打印下列图案 * ** *** **** ***** 8、编一程序: 从键盘输入10个整数,计算并输出这10个数的平均数。 #include main() {inta[10],j; floatave=0; for(j=0;j<10;j++) {scanf(“%d”,&a[j]); ave=ave+a[j]; } printf(“ave=%f”,ave/10); } 9、通过键盘输入3*4矩阵,编写一个函数求所有元素中的最大值,其中主函数完成3*4矩阵的输入和最大元素的输出。 #include main() {intmax(intarray[][4]);; intk,j,a[3][4]; for(k=0;k<3;k++) for(j=0;j<4;j++) scanf(“%d”,&a[i][j]); printf("themaxis%d",max(a)); } intmax(intarray[][4]) {intk,j,max; max=array[0][0]; for(k=0;k<3;k++) for(j=0;j<4;j++) if(array[k][j]>max)max=array[k][j]; return(max); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 复习题
![提示](https://static.bdocx.com/images/bang_tan.gif)