1、C 程序设计基础及实验 c 语言规定,任何非 0 的数像 1 -1 等都被认为是真,而 0 被认为是假11 为假试题一、单选题1. 已知 int k,m=1;执行语句 k=-m+;后,k 的值是_。 【知识点: 难度: 正确答案:A】A-1 B0 C1 D-22. 已知定义 int m; float k; 正确的语句是 。 【知识点: 难度: 正确答案:D】A (int k)%m Bint( k)%m Cint(k%m) D (int)k%m3. 当 k 的值不为 0 时,在下列选项中能够将 k 的值赋给变量 m,n 的是_。 【知识点: 难度:正确答案:B】Am=k=n B (m=k ) 表
2、达式 6x1 值是_。 【知识点: 难度: 正确答案:A 】A0 B1 C5 D表达式语法错表达式6x1 ,先判断6x 为0 ,再判断01,所以值为0。(6x 为1 ,再判断11,所以值为0。 )5. 下列程序段执行后 c 值为_。 【知识点: 难度: 正确答案:D】int k=7, c=0;while(-k) if (k%3) continue; else c+;A5 B4 C3 D26. 已知字母 a 的 ASCII 码为十进制数 97,且 ch 为字符型变量,则执行语句 ch=a+D-A;后,ch 中的值为_ 。 【知识点: 难度: 正确答案:C】Ad Bc C100 D不确定7. 设
3、m,n 已正确定义,执行语句 for(m=0, n=10; m,能使 puts(s)语句正确输出 ABCDE 字符串的程序段是_。 【 知识点: 难度: 正确答案:C】Achar s5 = “ABCDE“; puts(s) Bchar s5 = A,B,C,D,E; C 程序设计基础及实验 puts(s);Cchar *s; s = “ABCDE“; puts(s); Dchar *s; scanf(“%s”,s); puts(s);10. 以下程序有错,错误原因是_。 【知识点: 难度: 正确答案:D】main() int *p, i; char *q, ch;p = q = *p = 40
4、;*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 执行语句(m=ab)C 程序设计基础及实验 switch (k) case 2: s+; k+;case 1: s+; case 3: s+=1;switch(s)case 2: s+=2; break;de
5、fault: k+; break;default: s+=3; printf(“%d#%d#“, s, k);A1#3# B6#4# C3#2# D3#4#16. 下列程序的输出结果是_。 【知识点: 难度:2 正确答案:C】int f(int x) static int k; return +k + x;main( ) int k;for(k=1; k0)z=0; else z+=1;printf( “z=%dn“, z);Az=0 Bz=1 Cz=8 Dz=9C 程序设计基础及实验 esle 子句与其之前最近的不完整 if 配对。C 语言中等号“=”为赋值运算符,不用于判断相等,判断相等应
6、用“=”,因此执行 x=y 后,x=5,if(5)相当于 if( true), 执行 if(x0)z=0,所以 z=019. 下列程序段的输出是_。 【知识点: 难度:3 正确答案:B 】#define SQ(a,b) (a*a-2*a*b+b*b) main() int k=4;printf(“%d“, SQ(k, k-1) ); A1 #define 定义一个宏(不是一个函数),用于字符串的替换,注意替换不是用数值去替换,也不会自动加括号,因此SQ(k, k-1)=k*k-2*k*k-1+k-1*k-1=-k*k-2SQ(4,3)=-4*4-2=-18B-18 C-15 D-820. 若运
7、行以下程序时,从键盘输入Hello_Everyone!(表示回车) ,则下面程序的运行结果是_。 【知识点: 难度:2 正确答案:C】main() char c;int v1=0,v2=0;doswitch(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(“%d,%dn“, v1, v2);A6,10 B21,10 C22,10 D6,921. 下列程序段输出
8、_。 【知识点: 难度:4 正确答案:D】main() char str25 = “abcd“ ;strcpy( str0, “You“ ); strcpy( str1, “Me“ );str03 = C 程序设计基础及实验 printf( “%sn“, *str );AYou j+=2)s=10*s + pi j - 0;printf(“%dn“, s);A1537 B2468 C1357 D26482. 运行下列程序的输出结果是_。 【知识点: 难度:3 正确答案:D】C 程序设计基础及实验 struct st int x;int *y; *p;int dt4 = 10, 20, 30,
9、40 ;struct st aa4 = 50, main() p=aa;printf(“%d,“, +p-x); printf(“%d,“, +p-x); printf(“%d“, + (*p-y);A60,60,21 B51,51,21 C 60,70,31 D51,52,11 3. 下列程序的输出结果是_。 【知识点: 难度:4 正确答案:A 】void fun(int m, int *a, int *n) int i,j=0;for( i=1; i= i ) bi=*(ai+i);bi=0;printf(“%sn“, b);void f(char *a, int n) int i, j;
10、char *temp;for( i = 1; i 0) swap(void swap(char *s1, char *s2)char *temp;temp=*s1; *s1=*s2; *s2=temp;AJeri BJuyichay C Aeny D JFMAMJJ试题三、程序(段)填空题 1. 下面的程序输入 n ( 1 MaxSum ) MaxSum = ThisSum; /* 更新最大和值 */ /* end for-j */ /* end for-i */printf(“%dn“,MaxSum); A. Ai B. Aj C. An D. 0 E. 1 F. i G. j H. n I. n-i