1、- 1 -【第一卷】一、单项选择题(本大题共 15 小题,每小题 2 分,共 30 分) 在每小题列出的四个备选项中只有一个是最符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.在一个 C 语言程序中( ) A. 主函数只能有一个 B. 主函数可以有多个 C. 非主函数只能有一个 D. 主函数和非主函数都可以有多个2.正确定义无符号整型变量 m 的语句是( ) A. int m; B. unsigned int m; C. signed int m; D. unsigned signed m;3.不属于字符型常量的是( ) A. s B. 8 C. A D. n4.设
2、 int x=2,y=4;,值为非 0 的表达式是( ) A. 1/x*y B. 1/(x*y) C. 1.0/x/y D. 1/x/ (double)y5.设 int a=2,b=5;,结果为 0 的表达式是( ) A. a%b B. a,错误的语句是( ) A. +a; B. a+; C. a=-a; D. (-a)+;7.设 int a=1,b=2,c=3,d=4,f;,执行语句 f=(a!=b)?c+:d+;后 f 的值是( ) A. 2 B. 3 C. 4 D. 58.设 int m=5;,语句 while (m=0)printf (%d,m-=2);的循环体执行的次数是( ) A.
3、 0 B. 1 C. 2 D. 无限9.下列运算符优先级最高的是( ) A. += B. , C. ! D. ?:10.定义二维数组并初始化,正确的是( ) A. int a3 =1,2,3,4,5,6; B. int a 3=1,2,3,4,5,6; C. int a33=1,2,3,4,5,6; D. int a =1,2,3,4,5,6;11.有关变量的叙述,正确的是( ) A. 形式参数是全局变量 B. a 和 A 在 C 语言中是同一个变量 C. 函数体内定义的变量为全局变量 D. 在所有函数之外定义的变量为全局变量12.若定义的函数为 float*fun( ),则函数的返回值是(
4、) A. float 型数据 B. void 型数据 C. float 型指针 D. void 型指针13.设 int a10,*p=a;,数组元素 a4的正确引用是( ) A. *(p+4) B. p+4 C. *p+4 D. a+414.合法的用户标识符是( ) A. default B. #define - 2 -C. a+b D. book15.使用系统函数 sprt( )时,应在程序开头写上的编译预处理命令是( ) A. #include B. #include C. #include D. #include二、填空题 (本大题共 10 小题,每小题 2 分,共 20 分) 请在每小
5、题的空格中填上正确答案。错填、不填均无分。16.赋值运算符的结合性是_。 17.设 char ch;,判断 ch 为数学字符的逻辑表达式是_。 18.设 typedef float REAL;REAL x=1;,表达式 x/2 的值是_。 19.转义字符n的含义是 _。 20.设 int a=12;,语句 printf(%dn,(a/3,a%3,a/100);的输出结果是_。 21.函数中未指定存储类型的局部变量,其隐含的存储类型是_。 22. 若全局整型变量未初始化,则默认的初始值是_。 23.设 int a,*p=,通过指针变量 p 为 a 输入值的 scanf语句是_。 24.设 cha
6、r*s=abc;,语句 for(;*s!=0;s+) printf (W);的输出结果是_。 25.设 struct student char name 20; char sex; stu; 语句 printf(%dn,sizeof(stu);的输出结果是 _。 三、程序分析题(本大题共 4 小题,每小题 4 分,共 16分) 阅读下列程序,请将输出结果写到各题右侧的空白处。 26. #include void main() int i=11,j; j=i%3; switch (j) case 1: case 2: printf(%dn,j); break; default: printf(%
7、dn,i); 27. #include int fx (int n) int s; if (n=0) s=0; else s=n+fx (n-2); return s; void main() printf (%dn,fx(8); 28. #include #include void main () char *pa, a 20=Beijing2008; for (pa=a+7;*pa!=0;pa+) putchar (*pa); putchar (n); 29. #include #define N 6 void main () int a N=2,5,-6,4,-9,10, i; for
8、(i=0;i if(ai=1 & month=0;i-)*(a+i)=i;for(p=a;pq)return gcd (p-q,q);else return gcd(p,q-p );void main( )int m=24,n=36,min,max ;max=gcd(m,n);min=m*nmax;printf (“max=d,min=dn”,max,min);28.s(int a)static int b=l0;if (a2= =1) return(+b );else return(+a);void main( ) int i;for(i=0;i3;i+)printf(“ dt”,s (i
9、);printf( “n”);29.struct peoplechar name10;float score;per =“Tom”,95.5,“Mary”,88.0;void main( )struct people*p=per+1;- 6 -printf (“ s,.1fn”,per0.name,p score);四、程序填充题(本大题共 3 小题,每小题 6 分,共 18 分)请将下列程序横线处缺少的部分补上,使其能正确运行。30.对两个整型变量先进行输入和输出,将它们的值交换后再输出。#define PR printf(“a= d,b=dn”,a,b)void main( )int a,
10、b,_;* 第一空 *scanf (“dd”,_);* 第二空 *PR;temp=a,_,b=temp;/* 第三空 *PR;31.为二维数组各元素输入数据,计算并输出全部元素之和。#define N 5void main( )int i,j,aN N,sum=_;/* 第一空 *for(i=0;iN;i+)for(j=0;jN;j+)scanf (“d”,&aij);sum+=_;* 第二空 *printf (“sum= dn”,_);* 第三空 *32.为 n 输入一个正整数值后,计算并输出 sum=1-的值。void main()int n,k=0;float_;* 第一空 *scanf
11、 ( d,&n);dok+;if(_)sum+=1.0k;* 第二空 *else sum-=1.0k;while(_);* 第三空 *printf (sum=.4fn,sum);五、程序设计题(本大题共 2 小题,每小题 8 分,共 16 分)33.(1)根据下列计算公式写出函数,将华氏温度(F)转化为摄氏温度(C)。公式:C= (F-32)函数头为:float change(float F)(2)写出主函数,输入华氏温度,调用函数 change,计算并输出对应的摄氏温度。输出形式(温度要求两位小数):F=? C=?34.用循环结构实现下列问题:现有 1020 本书,第一天卖掉一半多两本,以后每天卖掉剩下的一半多两本,直到卖完为止。计算并输出卖完所需要的天数。- 7 -