1、通用考试端说明: 1. 判断题就只有 30 个,程序设计题 16 个,程序改错和程序填空是 10 个 2. 程序设计题需要保存、运行出结果才可能得到满分,如果仅仅就是把正确答案填入然后保存返回,可能分值很少。记住一定要编译运行一下! 3. 程序改错题就直接在上面改,改后保存就可以了,不需要编译运行。 4. 程序填空题的那个横线可以删除也可以保留,一定要记得一条语句的后面要加 ” ;” 5. 程序设计题、程序改错和程序填空中在 /* */ 的内容都不要去动它们,也不要删除。 一 选择题 1、 C 语言的注释定界符是: /* */ 2、 已知 i、 j、 k为 int型变量 ,若从键盘输入 :1,
2、2,3,使 i的值为 1、 j的值为 2、 k的值为3, 以下选项中正确的输入语句是 B 。 A. scanf(“ %2d%2d%2d” , 7、 若有下列定义,则对 a数组元素地址的正确引用是 D 。 int a5,*p=a; A. *(p+5) B. * 则表达式 (x+ * 1/3) 的值是 3 16、 a,b为整型 变量,二者均不为 0,以下关系表达式中恒成立的是 B A a*b/a*b=1 B. a/b *b+a%b=a C. a/b *b =a D. a/b*b/a=1 17、 若有定义 :int a=7;float x=2.5,y=4.7;则表达式 x+a%3*(int)(x+y
3、)%2/4的 值是 2.500000 18、 putchar 函数可以向终端输出一个 字符或字符型变量值 。 19、 为表示关系 x y z,应使用 C语言表达式 ( x=y) a=b;b=t 或者 a=a+b;b=a-b ;a=a-b 21、 以下程序的输出结果是 3 main() int x = 10, y = 3; printf(“%dn” , y = x / y); 22、 以下程序的输出结果是 无定义 fun( int a, int b, int c) c = a * b; main() int c; fun(2, 3, c); printf(“%dn”, c); 23、 已知字母
4、a的 ASCII十进制代码为 97, 则执行下列语句后的输出结果为 98,C 。 char a=a; a-; printf(“%d,%cn“,a+2-0,a+3-0); 24、 有以下宏定义 #define f 2 #define X(f) (F+1)*f) 当 C程序中的语句 y = 2 * (K + X(5);被执行后, 语 句报错 25、 有以下程序 void main() int i = 10, j = 1; printf(“%d,%dn“,i-, +j); 执行后输出结果是 10, 2 26、 执行下列语句后的输出为 * 。 int j=-1; if(j7) n-; printf(“
5、%d“, n ); 29、 判断两个字符串是否相等 ,正确的表达方式是 D A. while(s1=s2) B. while(s1=s2) C. while(strcmp(s1,s2)=0) D. while(strcmp(s1,s2)=0) 30、 C 语言的 switch 语句中 case 后 只能为常量或者常 量表达式 31、 int a=1,b=2,c=3; if(ab) a=b; if(ac) a=c; 则 a的值为( 1)。 32、 下面程序的功能是把 316表示为两个加数的和,使两个加数分别能被 13和 11整除 请填入 _ K%11_完成程序。 #include main()
6、int i=0,j,k; doi+;k=316-13*i;while( _) ; j=k/11; printf( “316=13*%d+11*%d“,i,j) ; 33、 以下程 序的执行结果是 1 main() int x = 0, s = 0; while( !x != 0 ) s += +x; printf( “%d “,s ); 34、 以下正确的说法是 B A. 如果形参与实参的类型不一致,以实参类型为准 B. 如果函数值得类型与返回值的类型不一致,以函数值类型为主 C. 定义函数时,形参的类型说明可以在函数体内 D. return后面的表达式不可能是函数 35、 下列程序的输出为
7、y=-1 main() int y=10; while(y-); printf(“y=%dn“,y); 36、 以下 for循环的执行次数是 4次 。 for(x=0,y=0;(y=123) /记住是从右往左 pritnf(“%dn”, (+p) - x); pritnf(“%dn”, +(*p - y) ); 55、 若有定义 : int x, *pb;, 则以下正确的赋值语句是 B A. *pb=*x B. pb= s 0 =k; k=s 1 *10; 57、 对两个数组 a和 b进行如下初始化: char a = “ABCDEF“; char b = A,B,C,D,E,F; 则以下叙述
8、正确的是: B A. a和 b中都存放字符串 B. a数组比 b数组长 C. a和 b长度相等 D. a和 b完全相等 58、 以下各选项企图说明一种新的类型名,其中正确的是 D 。 A. typedef v2=int B. typedef v2:int C. typedef v2 int D. typedef int v2 59、 C程 序中的宏展开是在 编译前预处理时进行的 。 60、 C语言中不可以嵌套的是 函数定义 。 61、 以下程序的输出结果是 852 main() int y = 10 for(; y 0; y -) if(y % 3 = 0) pritnf(“%d”, -y);
9、 continue; 62、 以下程序的运行结果是 程序报错 。 main() int i=1,sum=0; while(ic)b=a;a=c;c=b;则 c 的值为 2 。 66、 执行下列程序后 , 其输出结果是 -18 。 main() int a=9; a+=a-=a+a; printf(“%dn“,a); 67、 以下程序的输出结果为 9, 10 。 main() int i=010,j=10; printf(“%d,%dn“,+i,j-); 68、 以下的选择中,正确的赋值语句是 C 。 A. y=int(x) B. j+ C. a=b=5 D. a=5,b=5 69、 设变量定义
10、为 “int a, b;“,执行下列语句时 ,输入 _ _D_ _,则 a和 b的值都是 10. scanf(“a=%d, b=%d“, A. a=10 b=10 B.10 10 C.10,10 D. a=10 ,b=10 70、 下列 C 表达式的值为真 ,其中 a=5;b=8;c=10;d=0 A. a*28+2 B. (a*2-c)|d C.a-b=y int x; double z;则表达式 c*x+z 值的数据类型为 double 。 设有说明 :char w; int x; float y; double z; 则表达式 w*x+z-y值的数据类型为 double 。 74、 执行
11、下列语句后 , a和 b的值分别为 98,-60 。 int a,b; a=1+a; b=2+7%-4-A; 75、 下列程序的输出结果是 10 。 main() int a=011; printf(“%dn“,+a); 76、 下列语句的结果是 4,4 。 void main() int j; j=3; printf(“%d,“,+j); printf(“%d“,j+); 77、 为了避免在嵌套的条件语句 if-else 中产生二义性 , C语言规定 :else子句总是与 与之前最靠近的if 配对。 78、 能将高级语言编写的源程序转换为目标程序的是 编译程序 。 79、 以下程序的运行结果
12、是 2 main() int a=2, b= -1, c=2 ; if (ab) if(b0) c=0; else c+=1; printf(“%dn”, c ); 80、 以下程序的执行结果是 _1 2 3_. main() int num = 0; while( num = 2 ) num+; printf( “%d,“,num ); 81、 C语言中 while 和 do-while 循环的主要区别是 do-while 的循环体总会无条件执行一次 。 82、 有以下程序 main() int i; for(i=0; i3; i+) switch(i) case 1: printf(“%d
13、“, i); case 2: printf(“%d“, i); default : printf(“%d“, i); 执行后输出结果是 011122 83、 以下函数调用语句中,含有的实参个数是 2 func( (exp1, exp2), (exp3, exp4, exp5); 84、 以下程序段的输出结果是 9 pritnf(“%dn“, strlen(“ATSn0121“); 85、 已知指针 p的指向,则表达式 +*p的值是 21 86、 以下程序段 char *alp=“ABC“,“DEF“,“GHI“; int j; puts(alp1); 的输出结果是( DEF)。 87、 下面程
14、序的输出结果是 3 main() int a 10 =1,2,3,4,5,6,7,8,9,10,*p=a; printf( “%d n“,*( p+2) ; 88、 以下程序的输出结果是 3 5 7 main() int i, x33 = 1, 2, 3, 4, 5, 6, 7, 8, 9; for(i = 0; i 3; i+) printf(“%d,“, xi2-i); 89、 以下数据中,不正确的数值或字符常量是 C 。 A. 10 B. 0xff00 C. 8.9e1.2 D. 82.5 90、 在 C语言中,引用数组元素时,其数组下标的数据类型允许是 整数常量或整数表达式 91、以下
15、对一维整型数组 a的正确说明是 A 。 A. #define SIZE 10 (换行 ) int aSIZE B. int a(10) C. int n; scanf(“%d”, int an; D. int n=10,an 92、一个 C程序的执行是从 B 。 A、 本程序文件的第一个函数开始 ,到本程序 main函数结束 B、 本程序的 main函数开始 ,到 main函数结束 C、 本程序的 main函数开始 ,到本程序文件的最后一个函数结束 D、 本程序文件的第一个函数开始 ,到本 程序文件的最后一个函数结束 93、 以下选项中合法的用户标识符是 _A_ 。 A、 _2Test B、 long C、 A.dat D、 3Dmax 94、 C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符 _D_ 。 A、 必须为下划线 B、 可以是字母,数字和下划线中任一字符 C、 必须为字母 D、 必须为字母或下划线