A)return语句中的表达式值的类型 B)调用该函数的主调函数类型 C)调用该函数时传递的实参类型 D)定义该函数时指定的函数类型 32. 若要说明a是整型变量,pa为指向a的整型指针变量,则下列选项中正确的是
_______。
A)int a,*pa=&a ; B)int a,pa=&a; C)int a,*pa=a D)int *pa=&a,a; 33. 设有int s[ ]={1,3,5,7,9},*p=s;,则下列选项中值为7的表达式是_______。
A)*p+2 B)*p+3 C)*(p+3) D)*(p+2) 34. 对于类型相同的两个指针变量之间,能进行的运算是_______。
A)% B)= C)! D)/ 35. 设有
struct student { char name[21]; int age; char sex;
}std={“Li Ming”,19,?M?},*p; p=&std;
则下列输出语句中错误的是_______。 A)printf(“%d”,(*p).age); B)printf(“%d”,p->age); C)printf(“%d”,std.age); D)printf(“%d”,p.age); 36. 设有
uion data
{ int i; char c; float f;}a; int b;
则下列语句中正确的是______。 A)a=1.6; B)a.c=?\\101?; C)b=a; D)printf(“%d\\n”,a); 37. 设有
typedef struct ABC
{ long a; int b; char c[2];}NEW; 则下列语句中正确的是______。 A)以上的说明形式非法 B)ABC是一个结构体变量 C)NEW是一个结构体类型名 D) NEW是一个结构体变量 38. 设有int x=28;,则执行语句printf(“%d\\n”,x>>2);后的输出结果为_______。
A)7 B)14 C)28 D)56 39. C语言中,根据数据的组织方式,文件可分为ASCII文件和_______。
A)二进制文件 B)只读文件 C)只写文件 D)随机文件 40. 以读写方式打开一个已存的文本文件data.txt,下列选项中正确的是_______。
A)FILE *fp;fp=fopen(“data.txt”,”rb”); B)FILE *fp;fp=fopen(“data.txt”,”w”); C)FILE *fp;fp=fopen(“data.txt”,”r”); D)FILE *fp;fp=fopen(“data.txt”,”r+”);
二、填空题(每空2分,共20分)
1. 结构化程序设计的三种基本结构分别是:顺序结构、 (1) 、循环结构。 2. 设有int a=65;,执行语句printf(“%x\\n”,a);后的输出结构是 (2) 。
3. 设有double x=56.789;,则执行语句printf(“%.2f\\n”,x);后的输出结果是 (3) 。 4. 设有int a=27;,则执行语句a%=4;后a的值是 (4) 。
46/48
5. 6. 7. 8.
设有int a[3][4]={{1,2},{0,1},{4,6,8,10}};,则a[1][1]+a[2][2]的值是 (5) 。 C标准库函数中,常用的字符串比较函数是 (6) 。
表示变量存储方式的关键字有auto、 (7) 、register和extern。 下列程序的输出结果是 (8) 。 #include
{ char s[ ]={”Computer”},*p=s; printf(“%c”,*p+5); }
9. 设有#define M(x) x*x,则M(1+2)的值是 (9) 。
10. 设有enum weekday {Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday};,则
枚举元素Saturday对应的数值是 (10) 。
三、阅读理解题(每题4分,共20分)
1. 运行以下程序时从键盘输入2010,其运行结果是________________。
#include
scanf(“%d”,&year);
if((year%4==0&&year0!=0)||(year@0==0)) leap=1; if(leap==1) printf(“%d is a leap year!\\n”,year); else printf(“%d is not a leap year!\\n”,year);
}
2. 以下程序的运行结果为________________。
#include
{ case ?a?: case ?A?: case ?b?:
case ?B?:printf(“good!\\n”);break; case ?c?:
case ?C?:printf(“pass!\\n”);break; case ?d?:
case ?D?:printf(“warning!\\n”);break; default: printf(“error!\\n”); } }
3. 以下程序的运行结果为________________。
#include
{ char s[]=”I/love/C/Programming/”; int i,num;
num=0;
47/48
for(i=0;s[i]!=?\\0?;i++)
if(s[i]!=?/?&&s[i+1]= =?/?) num++; printf(“num=%d\\n”,num); }
4. 以下程序的运行结果为________________。
#include
if(n= =0||n= =1) m=3;
else m=n*n-f(n-2); return(m); }
void main( ) { int n=4,m; m=f(n);
printf(“n=%d,m=%d\\n”,n,m);
}
5. 以下程序的运行结果为________________。
#include
char a[]=”ABCDEFGH”,b[]=”abCDefGH”; char *p1,*p2; printf(“%s\\n”,a); printf(“%s\\n”,b);
for(p1=a,p2=b;*p1!=?\\0?;p1++,p2++) if(*p1= =*p2) printf(“%c”,*p1); printf(“\\n”);
}
四、编程题(共20分) 1.(6分)输入两个正整数a和b,如果a能被b整除,输出商,否则输出商和余数。 2.(7分)利用循环语句编写程序,计算s=1+11+111+1111+11111并输出结果。 3.(7分) 输入10位学生成绩,输出学生成绩及其所对应的名次。 例如,下面有10位学生的成绩及计算后对应的名次: 成绩 名次 90 5 85 8 90 5 95 2 80 9 88 7 70 10 100 1 95 2 95 2 其中“95分”排名第2,由于有3个“95分”,下一个较小的成绩“90分”则排名第5。 说明:算法及输出形式不限,相同的成绩及名次可以不重复输出。
48/48