您好,欢迎来到纷纭教育。
搜索
您的当前位置:首页c程序测试题(答案)

c程序测试题(答案)

来源:纷纭教育
一、选择题

1. 下叙述正确的是(A)。

A.C语言允许直接访问物理地址,可以直接对硬件进行操作

B.C语言程序不必编译,即可在计算机上运行

C.C语言不允许直接访问物理地址,不可直接对硬件进行操作

D.C语言程序只需编译,不需要连接即可在计算机上运行

2. 在一个C程序中(B)。

A.main函数出现在所有函数之前。C程序不都有main函数

B.main函数可以在任何地方出现。一个C程序必须有且仅有一个main函数

C.main函数必须出现在所有函数之后。一个C程序只能有一个main函数

D.main函数出现在固定位置。一个C程序可以有多个main函数

3. 下列叙述正确的是(B)。

A.C语言中既有逻辑类型也有构造类型数据

B.C语言中没有逻辑类型,但有构造类型

C.C语言中有逻辑类型,但没有构造类型

E.C语言中既没有逻辑类型也没有构造类型

4. 下列关于C语言用户标识符的叙述中正确的是(B)。

A.用户标识符中可以出现下划线和中划线(减号)

B.用户标识符中不可以出现中划线,但可以出现下划线

C.用户标识符中可以出现下划线,但不可以放在标识符开头

D.用户标识符中可以出现下划线和数字,他们都可以放在标识符开头

5. 下列转义字符中,错误的是(A)。

A.\\0xa5 B. \031 C. \\b D. \

6. 字符串 \\\\\\\\1234\\\\\\\\\\n 在内存中占用的字节数是(C)。

A.14 B. 9 C. 10 D. 11

7. 已知梯形的上底为a, 下底为b,高为h,用C语言写的正确的面积公式是(B)。

A. 1/2*(a+b)*h B. 2*(a+b)*h

C. (a+b)h D. 2*a+b*h

8. 与k=n++完全等价的表达式是(D)。

A. n=n+1, k=n B. k+=n+1 C. K=++n D. k=n, n=n+1

9. 已定义char s1, s2;, 下面正确的语句是(C)。

A. scanf(%s%c, s1,s2); B. scanf(%s%c, s1, &s2);

C. scanf(%c%c, &s1,&s2); D. scanf(%c%c, s1,s2);

10. 为下面的程序输入数据,使得i=10, k=a, j=15, 正确的键盘输入方法是(D)。

A. 10,a,15<回车> B. 10<回车>a<回车>15<回车>

C. 10’a’15<回车> D. 10a15<回车>

11. 已知float x=, y=;, 根据下面的输出结果,正确的程序段是(B)。

x=,y=

y+x=,y-x=

A.printf(x=%8.2f,y=%8.2f,x,y); printf("y+x=%4.2f,y-x=%4.2f\\n",y+x,y-x);

B.printf(x=%8.6f,y=%8.6f\\n,x,y); printf("y+x=%4.2f,y-x=%4.2f\\n",y+x,y-x);

C.printf(x=%7.2f,y=%7.2f\\n,x,y); printf("y+x=%3.2f,y-x=%3.2f\\n",y+x,y-x);

D.printf(x=%f,y=%f,x,y); printf("y+x=%f,y-x=%f\\n",y+x,y-x);

12. 下列表达式中,值为0的表达式是(D)。

A. 3!=0 B. 3!=3>4 C. 3>4==0 D. 6>5>4

13. 下列表达式中,结果为1的表达式是(A)。

A. !0==1 B. !6 C. !2>=3 D. !3!=0

14. 设int a=3; 则表达式a<1&&--a>1的运算结果和a的值分别是(B)。

A. 0和2 B. 0和3 C. 1和2 D. 1和3

15. 下面程序的运行结果是(B)。

main(){ int x=3;

do{printf("%3d",x-=2); } while(!(--x));

}

A. 死循环 B. 1 -2 C. 10 D. 1

16. 下面程序的运行结果是(D)。

main(){int i,j,k,sum;

for(i=2;i<7;i++)

{sum=1;

for(j=i;j<7;j++) sum=sum+j;

}

printf(%d,sum);

}

A. 48 B. 49 C. 1 D. 7

17. 不能把字符串Hello!赋给数组a的语句是(B)。

A.char a[10]={H,e, l, l, o, !};

B.char a[10]; a=Hello!”;

C.char a[10]; strcpy(a, Hello!);

D.char a[10]= Hello!;

二、完善程序或写出程序运行结果

1. 根据以下给定公式计算e的值(取前n项)

455de94780ea3f052285a988765e7ea7.png

main(){ double sum=, x=, y=; int n;

scanf("%d &n );

while(n){

y=x*y;

sum=sum+ y ;

x++; --n;

}

printf("sum=%f", sum);

}

2. 用10元人民币兑换角币(1角、2角、5角),有多少种换法

main(){ int i, j, k, m=0;

for(i=0; i<= 20 ; i++)

for(j=0; j<=(100- 5*i )/2; j++)

for(k=0; k<=100-5*i-2*j; k++)

if(i*5+j*2+k==100) m++;

printf(m=%d ,m);

}

3. 1988年世界人口数50亿,按年增长率11‰计算,哪一年开始世界人口数突破100亿

main(){ int year=1988;

float r=, no=5E9, n;

n=no;

do{n= n * (1+r);

year++;} while ( n <2*no);

printf(year=%d\\npupulation=%f , year, n);

}

4. 下面程序的功能是求矩阵B(不包括外围元素)的元素之积。

main(){ int i, j, f=1;

int b[][4]={1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7};

for(i=0; i<4; i++){

for(j=0; j<4; j++) printf(%4d, b[i][j]);

printf(\\n);

}

for(i=1; i<3 ; i++)

for(j=1; j<3; j++) f=f* b[i][j] ;

printf(f=%d\\n, f);

}

5. 以下程序的输出结果是 #&

main(){ int a=2, b=7, c=5;

switch(a>0){

case 1: switch(b<0)

{ case 1: printf(@); break;

case 2: printf(!); break;

}

case 0: switch(c==5)

{ case 0: printf(*); break;

case 1: printf(#); break;

default: printf(#); break;

}

default: printf(&);

} printf(\\n);

}

6. 以下程序的输出结果是 12

main(){ int a[10],i,k=0;

for(i=0; i<10; i++) a[i]=i;

for(i=1; i<4; i++)

k+=a[i]+i;

printf(%d\\n, k);

}

三、计算表达式的值

若有变量定义char a=a; int i=3, j=5, b; float x=;

double y=, z; 计算下面表达式的值。

1. a+i-j+x/y: 2. (x+y)+i++:

3. y+=i-=j*=++x: 4. b=a+=j%i: 99

5. a=a+i, a+j: 105 6. a=(a+i, a+j) : 102

7. y=(x=2, x+1, x+2) : 8. i-=j*=x+y: -34

9. (i++)*(--j) : 12 10. z=(i++)*(j++):

11. (int)x/(int)y+y: 12. (float)i/(++j) :

13. j%i+j: 3 14. (int)y%i%(int)(x+y) : 2

四、编程

下面是一个5阶螺旋方阵,试编程打印出此形式的n(n<10)阶的方阵(顺时针方向旋进)

12345
161718196
152425207
142322218
131211109

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- fenyunshixun.cn 版权所有 湘ICP备2023022495号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务