C语言程序设计 期末模拟试题3

电子工程及其自动化期末习题3

总共47题共100分

一、单选题 (共20题,共30分)

1. 执行下列程序后的输出结果是() int fun(int x1,int x2)

{ int x;x1>x2?(x=3):(x=4);return(x+x1); } main()

{ printf(\\n\,fun( 7,8));} (1.5分) A.9 B.10 C.11 D.12 标准答案:C

2. 已知int i,a;执行语句i=(a=3,a++,--a,a+4,a+5,++a);后,i的值是() (1.5分) A.2 B.3 C.4 D.5 标准答案:C

3. 若有以下定义和语句: double r=99,*p=&r; *p=r;

则以下正确的叙述是( ) (1.5分)

A.以下两处的*p含义相同,都说明给指针变量p赋值

B.在\中,把r的地址赋值给了p所指的存储单元 C.语句\把变量r的值赋给指针变量p D.语句\取变量r的值放回r中 标准答案:D

4. 有以下程序 #Define N 20 fun(int A[],int n,int m) {int i,j; for(i=m;i>=n;i--)A[i+1]=A[i]; } main() { int i,A[N]={1,2,3,4,5,6,7,8,9,10}; fun(A,2,9); for(i=0;iA.10234 B.12344 C.12334 D.12234 标准答案:C

5. 下面程序的输出是() main() {

int k=11;

printf(\ } (1.5分)

A.k=11,k=12,k=13 B.k=11,k=13,k=13 C.k=11,k=013,k=oXb D.k=11,k=13,k=b 标准答案:D

6. 有以下程序段:

int num[4][4]={{1,2,3,4,{5,6,7,8,{9,10,11,12,{13,14,15,16,i,j; (1.5分) A.i-1 B.i C.i+1 D.4-i 标准答案:B

7. 执行下述程序的输出结果是()。 #include #include main() {

char *p1,*p2,str[50]=\ P1=\ p2=\

strcpy(str+1,p2+1); strcpy(str+3,p1+3); printf(\ } (1.5分)

A.AfghDEFG B.ABfhD C.AfghD D.AfgD 标准答案:D

8. 以下语句的输出结果是() int a=0,b=0,c=0;

c=(a-=a-5),(a=b,b+3);

printf(\(1.5分)

A.0,0,5 B.-10,5,-10 C.5,0,5 D.5,0,-10 标准答案:A

9. 阅读程序

#include int funC(int B[],int n) {

int i,r; r=1;

for (i=0;iA.720 B.120 C.24 D.6 标准答案:B

10. 下列选项中,可作为C语言合法整数的是() (1.5分) A.10110B B.0386 C.0Xffa D.x2a2 标准答案:C

11. 若有以下定义,则对A数组元素的正确引用是() int A[5],*p=A; (1.5分)

A.*&A[5]  B.A+2 C.*(p+5) D.*(A+2) 标准答案:D

12. 有以下程序

void fun(int *a,int i,int j) { int t;

if (i{ t=a[i];a[i]=a[j];a[j]=t; fun(a,++i,--j); } }

main()

{ int a[]={1,2,3,4,5,6},i; fun(a,0,5);

for(i=0;iprintf(\}

执行后输出结果是() (1.5分)

A.6 5 4 3 2 1 B.4 3 2 1 5 6 C.4 5 6 1 2 3 D.1 2 3 4 5 6 标准答案:A

13. 若定义如下变量和数组_________。 int j;

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

则下面语句的输出结果是_________。

For (j=0;j Printf(\(1.5分)

A.1 5 9 B.1 4 7 C.3 5 7 D.3 6 9 标准答案:C

14. 有以下程序: main() {

int a=1,b=2,m=0,n=0,k;

k=(n=b>a)||(m=aA.0,0 B.0,1 C.1,0 D.1,1 标准答案:C

15. sizeof(float)是() (1.5分)

A.一个双精度型表达式 B.一个整型表达式 C.一种函数调用 D.一个不合法的表达式 标准答案:B

16. 在C语言的循环语句for,while,do-while语句中,用于直接中断最内层循环的语句是() (1.5分) A.switch B.continue C.break D.if 标准答案:C

17. 有以下程序 #include main() { printf(\

程序运行后的输出结果是() (1.5分) A.0 B.1

C.-1 D.NULL没定义,出错 标准答案:A

18. 以下程序的输出结果是()

main() {

char *a[][5]={“how”,”do”,”you”,”do”,”!”}; char **p; int i; p=a;

for(i=0;i printf(“%s”,p[i]); } (1.5分)

A.howdoyoudo! B.how C.howdoyoudo D.hdyd 标准答案:C

19. 执行下面的程序后的输出结果为( ) int x,y,z;

x=20,y=40,z=15; while(y>x) x+=4,y-=4; z/=2;

printf(\(1.5分)

A.40,36,30 B.32,8,7 C.32,28,7 D.32,28,7.5 标准答案:C

20. 函数调用:strcat(strcpy(str1,str2),str3)的功能是( ) (1.5分) A.将串str1复制到串str2中后再连接到串str3之后 B.将串str1连接到串str2之后再复制到串str3之后

C.将串str2复制到串str1中后再将串str3连接到串str1之后 D.将串str2连接到串str1之后再将串str1复制到串str3中 标准答案:C

二、判断题 (共10题,共10分)

1. do-while语句构成的循环不能用其他语句构成的循环来代替() (1分) ( ) 标准答案:错误

2. 在for语句的一般形式中,表达式1和表达式3可以是一个简单的表达式,也可以是逗号表达式,即包含一个以上的简单表达式,中间用逗号间隔。( ) (1分) ( ) 标准答案:正确

3. 函数strcpy(字符数组1,字符串2)作用是将字符数组1复制到字符串2中去。 (1分) ( ) 标准答案:错误

4. break语句只结束本次循环,而不是终止整个循环的执行。continue语句则是结束整个循环过程,不再判断执行循环的条件是否成立。( ) (1分) ( ) 标准答案:错误

5. 在执行switch语句时,多个case语句不可以共用一组执行语句() (1分) ( ) 标准答案:错误

6. 不同函数中可以使用相同名字的变量,它们代表不同的对象,互不干扰。 (1分) ( ) 标准答案:正确

7. 静态存储方式则是在程序运行期间根据需要进行动态的分配存储空间的方式。 (1分) ( ) 标准答案:错误

8. 关系表达式的值是一个逻辑值,它的值为“真”或“假”。逻辑表达式的值也是一个逻辑量,它的值也为“真”或“假”() (1分) ( ) 标准答案:正确

9. 如果被调用函数的定义出现在主调函数之前,可以不必加以声明() (1分) ( ) 标准答案:正确

10. 条件运算符的结合方向为“自左而右”。 (1分) ( ) 标准答案:错误

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4