测试题
1. 以下正确的叙述是:
A)在C程序中,每行中只能写一条语句
B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数
C)在C程序中,无论是整数还是实数,都能被准确无误地表示
D)在C程序中,%是只能用于整数运算的运算符 2. 以下叙述不正确的是。
A)一个C源程序可由一个或多个函数组成 B)一个C源程序必须包含一个main函数 C)C程序的基本组成单位是函数
D)在C程序中,注释说明只能位于一条语句的后面 3.在C语言中,要求运算数必须是整型的运算符是。 A) / B) ++ c) != D)% 4.下面正确的字符常量是:
A)\"a\" B)'\\\\'' C)'W' D)’ ’
5.根据下面的程序及数据的输入方式和输出形式,程序中输入语句的正确形式应该为: main()
{char ch1 ,ch2 ,ch3; 输入语句
printf(\"%c%c%c\ 输入形式: A B C 输出形式: A B C
A) scanf(\"%c%c%c\ B) scanf(\"%c,%c,%c\ C) scanf(\"%c %c %c\ D) scanf(\"%c%c\
6.C语言规定:在一个源程序中,main函数的位置 。 A)必须在最开始
B)必须在系统调用的库函数的后面 C)可以任意 D)必须在最后
7.一个C语言程序是由
A)一个主程序和若干子程序组成 B)函数组成 C)若干过程组成 D)若干子程序组成
8.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'十'6'一'3';后,c2中的值为 A)D B)68 C)不确定的值 D)C
9.以下符合C语言语法的赋值表达式是 A)d=9+e+f=d+9B) d=9+e,f=d+9
C)d=9十e,e++,d十9 D)d=9十e++=d十7
10.在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为
A)char11.若x,i,j和k都是int型变量,则执行下面表达式后x的值为x=(i=4,j=16,k=32)
A)4 B)16 C)32 D)52
12.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符
A)必须为字母 B)必须为下划线
C)必须为字母或下划线 D)可以是字母,数字和下划线中任一种字符
13.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是: A)7 B)8 C)6 D)2 14.以下说法正确的是:
A)输入项可以为一实型常量,如scanf(\"%f\B)只有格式控制,没有输入项,也能进行正确输入,如scanf(\"a=%d,b=%d\");
C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,
如scanf(\"%4.2f\
D)当输入数据时,必须指明变量的地址,如scanf(\"%f\
1. 在do-while循环中,任何情况下都不能省略while. 2.在C程序中,无论是整数还是实数,都能被准确无误地表示
3.定义 int x[5],n;则x=x+n;或x++;都是正确的. 4.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。 5.在C程序中,每行中只能写一条语句 6.当输入数据时,必须指明变量的地址,如scanf(\"%f\
7.若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数
8.对静态变量的初始化不是在编译阶段完成的. 9.在C程序中,逗号运算符的优先级最低 10.在C程序中,APH和aph是两个不同的变量
第 1 页 共 4 页
11.在C程序中,%是只能用于整数运算的运算符 12.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(\"%4.2f\
1.若a是int型变量,则执行下面表达式后a的值为________________;a=25/3%3
2.若s是int型变量,且s=6,则下面表达式的值为_____________s%2+(s+1)%2 3、已知 int x=10, y=20, z=30; 以下语句执行后x, y, { if(j%2) continue;
k++; } } k++; }
printf(\"k=%d\\n\ } 3. main()
{int a=100,x =10,y=20,okl=5,ok2=0; z的值是______,_________和_______。 if(x>y)
z=x;x=y;y=z;
4.若x和a均是int型变量,则执行表达式〔1〕后的x值为______________,执行表达式〔2〕后的x值为________________
〔1〕 x=(a=4,6*2) 〔2〕 x=a=4,6*2
5.、若a是int型变量,且a的初值为6,则执行下面表达式后a的值为________________; a+=a-=a*a a=25/3%3
6.在C语言中,一个int型数据在内存中占2个字节,则int型数据的取值范围为____________;
7.C语言所提供的基本数据类型包括:单精度、双精度、_____________、______________和枚举型;
8.若x和n均是int型变量,且x和n的初值均为5,则执行下面表达式后x的值为____________,n的值为______________; x+=n++
1.当a=1,b=3,c=5,d=4 ,执行完下面一段程序后x 的值是 :
if(a2.下面程序的输出结果是____。 main()
{ int i,j,k=10; for(i=0;i<2;i++) { k++;
{ int k=0;
for(j=0;j<=3;j++)
第 2 页 共 4 页
if (xif(ok2) a=10; a=-1:printf( \"%d\\n\ }
4下面程序的输出结果是____。 #include main( ){ int n[3][3], i, j; for(i=0;i<3;i++ ) for(j=0;j<3;j++ ) n[i][j]=i+j; for(i=0;i<2;i++ ) for(j=0;j<2;j++ )
n[i+1][j+1]+=n[i][j]; printf(\"%d\\n\ }
A) 14 B) 0 C) 6 D) 不确定 5. main()
{int x= 2,y= -1,z=2; if (xif(y<0) z= 0; else z+ =1; printf(\"%d\\n\ }1、给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 2. 利用递归方法求5!。
3. 输入n=3值,输出如图所示图形。
4、一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
5. 有5个人坐在一起,问第五个人多少岁?他说比第4个2岁。问第4个人岁数,他说比第3个2岁。问第三个人,又说比第2两岁。问第2个人,说比第一个两岁。最后问第一个人,他说是10岁。请问第五个人多大?
6、请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。 7. 判断101-200之间有多少个素数,并输出所有素数。 int fact();
for(i=0;i<5;i++)
printf(\"\\40:%d!=%d\\n\}
int fact(j) int j; {
int sum; if(j==0) sum=1; else
sum=j*fact(j-1);
答案:
1.d, 2.d, 3d, 4.c, 5.a, 6.c, 7.b, 8.a, 9.b, 10.a, 11.c, 12.c, 13.b, 14.d, 15.a,
1. √2、× 3、× 4、√5、×6.√7.× 8. ×9、×10、× 11、√ 12. × 1、2 2、1 3.20 30 30 4. 12 4 5. —60 6. -32768~+32767 7. 1)整型 2)字符型 3)枚举型 8.10 6
1.2 2. k=8 3. -1 4.6 5.2 1. main( ) {
long a,b,c,d,e,x; scanf(\"%ld\
a=x/10000; /*分解出万位*/
b=x%10000/1000; /*分解出千位*/ c=x%1000/100; /*分解出百位*/ d=x%100/10; /*分解出十位*/ e=x%10; /*分解出个位*/
if (a!=0) printf(\"there are
5, %ld %ld %ld %ld %ld\\n\else if (b!=0) printf(\"there are 4, %ld %ld %ld %ld\\n\
else if (c!=0) printf(\" there are 3,%ld %ld %ld\\n\
else if (d!=0) printf(\"there are 2, %ld %ld\\n\
else if (e!=0) printf(\" there are 1,%ld\\n\}
2. #include \"stdio.h\" main() {
int i;
return sum; }
3. main( )
{ int i,j,n;
printf(\"\\nPlease Enter n: \"); scanf(\"%d\ for(i=1;i<=n;i++)
{ for(j=1;j<=n+i-1;j++) if(j>n-i) printf(\"*\"); else printf(\" \"); printf(\"\\n\"); }
for(i=1;i{ for(j=1;j<=2*n-i-1;j++) if(j>i) printf(\"*\"); else printf(\" \"); printf(\"\\n\"); } }4. main( ) {
long ge,shi,qian,wan,x; scanf(\"%ld\wan=x/10000;
qian=x%10000/1000; shi=x%100/10; ge=x%10;
if (ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/
printf(\"this number is a huiwen\\n\"); else
printf(\"this number is not a huiwen\\n\"); }
5. age(n) int n;
第 3 页 共 4 页
{
int c;
if(n==1) c=10; else c=age(n-1)+2; return(c); }
main()
{ printf(\"%d\}
6. #include void main() {char letter;
printf(\"please input the first letter of someday\\n\");
while ((letter=getch())!='Y') /*当所按字母为Y时才结束*/
{ switch (letter)
{case 'S':printf(\"please input second letter\\n\"); if((letter=getch())=='a') printf(\"saturday\\n\");
else if ((letter=getch())=='u') printf(\"sunday\\n\");
else printf(\"data error\\n\"); break;
case 'F':printf(\"friday\\n\");break; case 'M':printf(\"monday\\n\");break;
case 'T':printf(\"please input second letter\\n\"); if((letter=getch())=='u') printf(\"tuesday\\n\");
else if ((letter=getch())=='h') printf(\"thursday\\n\"); else printf(\"data error\\n\"); break;
case 'W':printf(\"wednesday\\n\");break; default: printf(\"data error\\n\"); } } }
7. #include \"math.h\" main() {
int m,i,k,h=0,leap=1; printf(\"\\n\");
for(m=101;m<=200;m++) { k=sqrt(m+1);
第 4 页 共 4 页
for(i=2;i<=k;i++)
if(m%i==0)
{leap=0;break;}
if(leap) {printf(\"%-4d\ if(h%10==0) printf(\"\\n\"); } leap=1; }
printf(\"\\nThe total is %d\}