C程序设计基础 - 复习题

更新时间:2023-11-22 04:27:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

c语言规定,任何非0的数像1 -1等都被认为是真,而0被认为是假 1>1为假

试题一、单选题

1. 已知int k,m=1;执行语句k=-m++;后,k的值是_____。【知识点: 难度: 正确答案:A】

A.-1 B .0 C.1 A.(int k)%m

B.int(k)%m

C.int(k%m)

D.-2 D.(int)k%m

2. 已知定义int m; float k; 正确的语句是 。【知识点: 难度: 正确答案:D】

3. 当k的值不为0时,在下列选项中能够将k的值赋给变量m,n的是______。【知识点: 难度: 正确答案:B】

A.m=k=n B.(m=k)&&(n=m) C.(m=k)||(n=k) D.(n=m)&&(m=k) 4. 已知 int x=5; 表达式6>x>1值是_____。【知识点: 难度: 正确答案:A】

A.0 B.1 C.5 D.表达式语法错

表达式6>x>1 ,先

判断6>x 为0,再判断0>1,所以值为0。

(6>x 为1 ,再判断1>1,所以值为0。)

5. 下列程序段执行后c值为_____。【知识点: 难度: 正确答案:D】 int k=7, c=0; while(--k)

if (k%3) continue; else c++; A.5 B.4 C.3 D.2

6. 已知字母a的ASCII码为十进制数97,且ch为字符型变量,则执行语句ch=?a?+?D?-?A?;后,ch

中的值为_____。【知识点: 难度: 正确答案:C】 A.d B.c C.100 D.不确定

7. 设m,n已正确定义,执行语句{for(m=0, n=10; m

【知识点: 难度: 正确答案:C】 A.6,7 B.7,6 C.9,7 D.7,9 8. 已知char *t[] ={”How”, ”are”, ”you!”};则t是_______。【知识点: 难度: 正确答案:B】 A.指向char变量的指针 B.指向字符指针的指针常量 C.指向”How”的指针变量 D.指向?H?的指针 9. 假设scanf语句执行时输入ABCDE<回车>,能使puts(s)语句正确输出ABCDE字符串的程序

段是______。【知识点: 难度: 正确答案:C】 A.char s[5] = {\B.char s[5] = {?A?,?B?,?C?,?D?,?E?}; puts(s); C.char *s; s = \D.char *s; scanf(“%s”,s); puts(s);

《C程序设计基础及实验》

10. 以下程序有错,错误原因是______。【知识点: 难度: 正确答案:D】

main()

{ int *p, i; char *q, ch; p = &i; q = &ch; *p = 40; *p = *q; ...... }

A. p和q的类型不一致,不能执行*p=*q;语句 B. *p中存放的是地址值,因此不能执行*p=40;语句 C. q没有指向具体的存储单元,所以*q没有实际意义

D. q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*p=*q;没有意义,可能会影响后面语句的执行结果

11. 若有定义:int a=2, b=5, c=8; 则表达式c |= (~a && b) ^ !(a & b)的值为_____。【知识点: 难

度:4 正确答案:B】

A.14 B . 8 C.1

12. 设int a=5, b=7, 表达式(++a == b--)? ++ a : --b 的值是_______。【知识点: 难度:2 正确

答案:C】

A.7 B . 6 C.5

13. 设a=3, b=2, 那么表达式 (a=b=7, b=a!=7) 的值是 。【知识点: 难度:2 正确答

案:D】

A.1 B .2 C.7 的值为0

逗号运算符只取最右边的子表达式的值,但每个子表达式都要运行

14. 设有:int a=1,b=2,c=3,d=4,m=2,n=2; 执行语句(m=a>b)&&(n=c>d);后n的值是_____。 【知

识点: 难度:3 正确答案:A】

A.2 B .1 C.0

D.3 D.0

逗号(,)也可以是运算符,逗号表达式最右边的子表达式的值即为逗号表达式的值。而b=a!=7

D.4 D.0

&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。 &&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式, 15. 下列程序段的输出结果是_____。 【知识点: 难度:3 正确答案:B】

int k=2, s=0; switch (k) {

case 2: s++; k++;

《C程序设计基础及实验》

case 1: s++; case 3: s+=1; switch(s){

case 2: s+=2; break; default: k++; break; }

default: s+=3; }

printf(\

A.1#3# B .6#4# C .3#2# D.3#4#

16. 下列程序的输出结果是_____。 【知识点: 难度:2 正确答案:C】 int f(int x)

{ static int k; return ++k + x;

}

main( ) { int k;

for(k=1; k<4; k++) printf(\} A.2#5# B .3#6# C .2#4#6# D.不确定

17. 下列程序的输出结果是_____。 【知识点: 难度:2 正确答案:D】

main()

{ char x=040;

printf(\); } A. o B . 40 C.1000000 D.100

18. 下列程序段的输出是__________。 【知识点: 难度:3 正确答案:A】

main()

{ int x= -9, y=5, z=8;

if(x=y)if(x>0)z=0; else z+=1; printf(\); }

A.z=0 B .z=1 C .z=8

D.z=9

《C程序设计基础及实验》

esle子句与其之前最近的不完整if配对。

C语言中等号“=”为赋值运算符,不用于判断相等,判断相等应用“==”,因此 执行x=y后,x=5,if(5)相当于if( true), 执行if(x>0)z=0,所以z=0

19. 下列程序段的输出是__________。【知识点: 难度:3 正确答案:B】

#define SQ(a,b) (a*a-2*a*b+b*b) main()

{ int k=4;

printf(\ }

A.1 B.-18 C .-15

#define定义一个宏(不是一个函数),用于字符串的替换,注意替换不是用数值去替换,也不会自动加括号,因此

SQ(k,

k-1)=k*k-2*k*k-1+k-1*k-1=-k*k-2

SQ(4,3)=-4*4-2=-18

D.-8

20. 若运行以下程序时,从键盘输入Hello_Everyone!表示回车),则下面程序的运行

结果是_________。【知识点: 难度:2 正确答案:C】 main()

{ char c; int v1=0,v2=0; do{ switch(c=getchar()) {case 'a': case 'A': case 'e': case 'E': case 'i': case 'I': case 'o': case 'O':

case 'u': case 'U': v1+=1; default: v1+=1;v2+=1; } } while( c != '\\n' );

printf(\ v1, v2); } A.6,10 B .21,10 C .22,10 D.6,9

21. 下列程序段输出 _____。【知识点: 难度:4 正确答案:D】 main()

{ char str[2][5] = { \

strcpy( str[0], \ strcpy( str[1], \str[0][3] = '&';

《C程序设计基础及实验》

printf( \}

A.You&Me B .abcd C .abc&

D.You&

22. 对于函数f,调用 f (12345) 的输出是_____。【知识点: 难度:3 正确答案:A 】 void f (int n)

{ if(n<10) printf( \

else { f(n/10); printf( \ } }

A.12345 B .54321 C .11111

D.5432

23. 下列程序段的输出结果是_____.【知识点: 难度:2 正确答案:B】

void fun(char *fname,char *st) { FILE *myf; int i; myf = fopen(fname,\ for(i=0; i

void main() { fun(\ fun(\}

A.C_is_fun B .is_fun C .test_is_fun

D.C_

试题二、程序阅读题

1. 以下程序的输出结果是_______。【知识点: 难度:3 正确答案:C】

main()

{ char ch[2][5]= { \[2]; int i,j,s=0; for(i=0; i<2; i++)p[i]= ch[i]; for(i=0; i<2; i++) for(j=0; p[i][j]> ′\\0′; j+=2) s=10*s + p[i][j]- ′0′; printf(\); } A.1537 B .2468 C .1357 D.2648

2. 运行下列程序的输出结果是__________。【知识点: 难度:3 正确答案:D】

《C程序设计基础及实验》

本文来源:https://www.bwwdw.com/article/2arv.html

Top