C语言程序设计试题库 第一套试题 一、单项选择题(15个小题,每题2分,共30分): 1.一个C语言程序的执行是从一。 A.main函数开始,直到main函数结束 B.第一个函数开始,直到最后一个函数结束 C.第一个函数开始,直到最后一个语句结束 D.main函数开始,直到最后一个函数结束 2.正确的自定义标识符是。 A.x_2 B.a-b C.2sum D.$123 3.下面程序的运行结果是一。 #define F(x)x*x void main() int a=2,b=1; prinft(“%dn”,F(a+b): } A.3B.5C.8D.9 4.读以下程序段,判断a的值为一。 int抑,a=l0,b=l: p=&a; a=p+b; A.12B.10C.11D.编译出错 5.根据以下说明语句,则下面的叙述中不正确的是一。 struct student int num; char name[10] int score: }stu: A.struct是定义结构体类型的关键字 B.stu是结构体变量名 C.num,name,score都是结构体成员名 D.stu是结构体类型名 6.己知字母A的ASCII码为十进制数65,变量chl为字符型,则执行语句chl=‘A'+‘5'-2': 后,ch1中的值是。 A.DB.67C.一个不确定的值D.C 7.以下哪种方法不能对一维数组进行正确的初始化一· A.inta[]={l,2,3}:B.inta[5]={}: C.inta[5]=(1,2,3,4,5):D.inta[]={2,3,4*5,6}: 8.已正确定义字符变量ch1,下面能正确赋值的是一。 A.chl=“a”;B.chl=‘a'; C.chl=“C语言程序设计”:D.chl=‘C语言程序设计’: 9.逗号表达式(a=3*4,a*4),a+5的值是一
C 语言程序设计 试题库 第一套试题 一、单项选择题(15 个小题,每题 2 分,共 30 分): 1.一个 C 语言程序的执行是从_____。 A.main 函数开始,直到 main 函数结束 B.第一个函数开始,直到最后一个函数结束 C.第一个函数开始,直到最后一个语句结束 D.main 函数开始,直到最后一个函数结束 2. 正确的自定义标识符是_____。 A.x_2 B.a-b C.2sum D.$123 3.下面程序的运行结果是_____。 #define F(x) x*x void main( ) { int a=2,b=1; prinft(“%d\n”,F(a+b)); } A.3 B.5 C.8 D.9 4.读以下程序段,判断 a 的值为_____。 int *p,a=10,b=1; p=&a; a=*p+b; A.12 B.10 C.11 D.编译出错 5.根据以下说明语句,则下面的叙述中不正确的是_____。 struct student { int num; char name[10]; int score; }stu; A.struct 是定义结构体类型的关键字 B.stu 是结构体变量名 C.num, name, score 都是结构体成员名 D.stu 是结构体类型名 6.已知字母 A 的 ASCII 码为十进制数 65,变量 ch1 为字符型,则执行语句 ch1=‘A’+‘5’-‘2’; 后,ch1 中的值是_____。 A.D B.67 C.一个不确定的值 D.C 7.以下哪种方法不能对一维数组进行正确的初始化_____。 A.int a[ ]={1,2,3}; B.int a[5]={ }; C.int a[5]=(1,2,3,4,5); D.int a[ ]={2,3,4*5,6}; 8.已正确定义字符变量 ch1,下面能正确赋值的是_____。 A.ch1=“a”; B.ch1=‘a’; C.ch1=“C 语言程序设计”; D.ch1=‘ C 语言程序设计’; 9.逗号表达式 (a=3*4,a*4),a+5 的值是_____
A.53B.17C.20D.48 l0.设n为float型,m为int型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍 五入的表达式是 A.n=(n*100+0.5)/100.0B.n=n*100+0.5/100.0 C.m=m*100+0.5,n=m/100.0D.n=(n/100+0.5)*100.0 11.设=2,j3,则表达式(i+)*(+j)的值为 A.6B.8C.9D.12 12.关于以下程序段,说法正确的是一。 X=-1: do x=x*x:)while(!x) A.死循环B.循环体执行二次C.循环体执行一次D.有语法错误 13.若有下列定义:char c[5],*p=c;则对c数组元素地址的正确引用是一。 A.p+2B.&c[5]C.c+D.&c 14.当调用函数时,实参是一个数组名,则向函数传送的是一。 A.数组的长度B.数组每个元素中的值 C.数组每一个元素的地址D.数组的首地址 l5.文件中利用fopen函数打开文件,如果以只读方式打开二进制文件,则以下打开方式正确的是 A.r+B.rb C.wb D.ab 二、填空题(5个小题,每题2分,共10分): 1.若有inti=l,j7,a:执行语句a=i+(j%4!=0):后,a的值是_。 2.执行以下程序后,运行结果是。 #include void main() int a,b; for (a=1,b=1;a=10)break; if(b%3==1)b+=3;continue; } printf(“%d\n”,a):} 3.源程序中用到了strcat函数,需要包含的头文件(即库文件)为。 4.执行以下程序后,运行结果是 #include void main() int a=2; f1oatn=5.888,b; b=a+(int)n; printf(“%f\n”,b):} 5.语句scanf(“a=%d,b=%d",&a,&b):若将3和4分别输入给a和b,则正确的输入方式为 void main() {intx=l,y=0,a=0,b=0:
A.53 B.17 C.20 D.48 10.设 n 为 float 型,m 为 int 型,则以下能实现将 n 中的数值保留小数点后两位,第三位进行四舍 五入的表达式是_____。 A.n=(n*100+0.5)/100.0 B.n=n*100+0.5/100.0 C.m=n*100+0.5,n=m/100.0 D.n=(n/100+0.5)*100.0 11.设 i=2,j=3,则表达式(i++)*(++j)的值为_____。 A.6 B.8 C.9 D.12 12.关于以下程序段,说法正确的是_____。 x=-1; do { x=x*x; }while(!x); A.死循环 B.循环体执行二次 C.循环体执行一次 D.有语法错误 13.若有下列定义:char c[5],*p=c; 则对 c 数组元素地址的正确引用是_____。 A.p+2 B.&c[5] C.c++ D.&c 14.当调用函数时,实参是一个数组名,则向函数传送的是_____。 A.数组的长度 B.数组每个元素中的值 C.数组每一个元素的地址 D.数组的首地址 15.文件中利用 fopen 函数打开文件,如果以只读方式打开二进制文件,则以下打开方式正确的是 _____。 A.r+ B.rb C.wb D.ab 二、填空题(5 个小题,每题 2 分,共 10 分): 1.若有 int i=1,j=7,a; 执行语句 a=i+(j%4!=0); 后,a 的值是_______。 2.执行以下程序后,运行结果是_______。 #include void main( ) { int a,b; for(a=1,b=1;a=10) break; if(b%3==1) { b+=3; continue; } } printf(“%d\n”,a);} 3.源程序中用到了 strcat 函数,需要包含的头文件(即库文件)为_______。 4.执行以下程序后,运行结果是_______。 #include void main( ) { int a=2; float n=5.888,b; b=a+(int)n; printf(“%f\n”,b);} 5.语句 scanf("a=%d,b=%d",&a,&b); 若将 3 和 4 分别输入给 a 和 b,则正确的输入方式为____ 。 三、程序分析题,写出程序的运行结果(5 个小题,每题 4 分,共 20 分): 1.#include void main( ) { int x=1,y=0,a=0,b=0;
switch (x) case 1:switch(y) case 0:a++:break; case 1:b++;break: } case 2:a++;b++;break; printf(“a=%d,b=%d\n”,a,b);} 2.在运行以下程序时,输入“Turbo C+3.0”,写出程序的运行结果。 #include void main() char str[40]; printf("Input a string:"): scanf("%s",str): puts(str);} 3.#include void f(int y) static int i=5: int j=3; j++: printf(“%d+%d+%d=%dn”,i,j,y,i+jty); i*=2:} void main() int x; for(x=1:x void swap(int *pa,int *pb) {int知: p=pa: pa=pb: pb=p:} void main() {inta=10,b=20: int抑l=&a,*p2=&b: if(a int a=5;int b=7; int plus(int x,int y) int z; z=x+y; return (z);} void main() int a=4,b=5,c; c=plus (a,b);
switch(x) { case 1: switch(y) { case 0: a++; break; case 1: b++; break; } case 2: a++; b++; break;} printf(“a=%d,b=%d\n”,a,b);} 2.在运行以下程序时,输入“Turbo C++ 3.0”,写出程序的运行结果。 #include void main( ) { char str[40]; printf("Input a string:"); scanf("%s",str); puts(str);} 3.#include void f(int y) { static int i=5; int j=3; j++; printf(“%d+%d+%d=%d\n”,i,j,y,i+j+y); i*=2;} void main( ) { int x; for(x=1;x void swap(int *pa,int *pb) { int *p; p=pa; pa=pb; pb=p; } void main( ) { int a=10,b=20; int *p1=&a,*p2=&b; if(a int a=5; int b=7; int plus(int x,int y) { int z; z=x+y; return (z);} void main( ) { int a=4,b=5,c; c=plus(a,b);
printf(“atb=%d\n”,c);} 四、程序填空题,将下面程序补充完整(10个填空,每空2分,共20分): 1.输出九九表。 #include“stdio.h” void main() int i,j; for(i=1;i<=9;i++) {for(j=1:①:j+) printf(“%3d*%d-%2d”,i,j,i*j): ②: } } 2.利用函数形式,求x数组所有元素的平均值并输出。 #include“stdio.h” ①: void main() {f1 oat avg,x[10]={1.2,3.6,4.5,5.1,6.9,7,8,9,10.5,11.3}: avg=average (x): printf(“The average is%5.2f\n”,avg): } float average(float a[l0]) int i; float sum=0; for(i=0;i<10;i++)sum=sumta[i] ②: } 3.编写一个计算字符串长度的函数length. #include“stdio.h void main() char str[20]: int m: int length(char *p); printf("Input a string:\n"); gets(str): ①: printf("In the length of str is%d "m): } int length(char *p) int n=0; while(②){nt+:pt+:} return n:} 4.输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。 #include“stdio.h" void main()
printf(“a+b=%d\n”,c); } 四、程序填空题,将下面程序补充完整(10 个填空,每空 2 分,共 20 分): 1.输出九九表。 #include “stdio.h” void main( ) { int i,j; for(i=1;i<=9;i++) {for(j=1; ① ;j++) printf(“%3d*%d=%2d”,i,j,i*j); ② ; } } 2.利用函数形式,求 x 数组所有元素的平均值并输出。 #include “stdio.h” ① ; void main( ) { float avg,x[10]={1.2,3.6,4.5,5.1,6.9,7,8,9,10.5,11.3}; avg=average(x); printf(“The average is %5.2f\n”,avg); } float average(float a[10]) { int i; float sum=0; for(i=0;i<10;i++) sum=sum+a[i]; ② ; } 3.编写一个计算字符串长度的函数 length。 #include “stdio.h” void main( ) { char str[20]; int m; int length(char *p); printf("Input a string:\n"); gets(str); ① ; printf("\n the length of str is%d ",m); } int length(char *p) { int n=0; while( ② ) { n++; p++; } return n;} 4.输入 10 个整数,按每行 3 个数输出这些整数,最后输出 10 个整数的平均值。 #include “stdio.h” void main( )
int i,n=10,a[l0]; float avg=0; for(i=0;i=‘A'&*cp=‘a'&cp<=‘z') *cp=*cp-32; ②: puts(str): } 五、程序设计题(3个小题,共20分): 1.设三个整型变量a,b,c,编写程序为a,b,c输入数据,并要求a,b,c按由小到大排序后输出。(5分) 2.学生成绩可分为五分制与百分制,编程将百分制转换为五分制输出。(5分) 3.编写排序函数sort(inta[]),实现对数组a中的元素进行排序,并利用该函数,从键盘输入若 干个数(如10个)将其按升序排列。(10分) 第一套试题 一、单项选择题(15个小题,每题2分,共30分): 1-5:AABCD 6-10:ACBBC 11-15:BCADB 二、填空题(5个小题,每题2分,共10分): 1.2 2.4 3.string.h 4.7.0000005.a=3,b=4 三、程序分析题,写出程序的运行结果(5个小题,每题4分,共20分): 1.a=2,b=l2.Turbo3.5+4+1=10 4.10,205.a+b=910+4+2=16 四、程序填空题,将下面程序补充完整(10个填空,每空2分,共20分): l.①j=i②printf(“\n”) 2.Ofloat average(float a[10])float average(float a[]
{ int i,n=10,a[10]; float avg=0; for(i=0;i=‘A’&&*cp=‘a’&&*cp<=‘z’) *cp=*cp-32; ② ; } puts(str); } 五、程序设计题(3 个小题,共 20 分): 1.设三个整型变量 a,b,c,编写程序为 a,b,c 输入数据,并要求 a,b,c 按由小到大排序后输出。(5 分) 2.学生成绩可分为五分制与百分制,编程将百分制转换为五分制输出。(5 分) 3.编写排序函数 sort(int a[ ]),实现对数组 a 中的元素进行排序,并利用该函数,从键盘输入若 干个数(如 10 个)将其按升序排列。(10 分) 第一套试题 一、单项选择题(15 个小题,每题 2 分,共 30 分): 1-5:AABCD 6-10:ACBBC 11-15:BCADB 二、填空题(5 个小题,每题 2 分,共 10 分): 1.2 2.4 3.string.h 4.7.000000 5.a=3,b=4 三、程序分析题,写出程序的运行结果(5 个小题,每题 4 分,共 20 分): 1.a=2,b=1 2.Turbo 3.5+4+1=10 4.10,20 5.a+b=9 10+4+2=16 四、程序填空题,将下面程序补充完整(10 个填空,每空 2 分,共 20 分): 1.①j<=i ②printf(“\n”) 2.①float average(float a[10]) 或 float average(float a[ ])
②return(sum/10) 3.①m=length(str)②*p!=\0'或*p 4.①i%3=0②avg+=a[i]或avg=avg+a[i] 5.①*Cp=*cp+32或*cp=*cpt‘a’-‘A'②cpt+ 五、程序设计题(3个小题,共20分): l.#include“stdio.h" void main() int a,b,c,t; printf("input a,b and c:"); scanf("%d%d%d",&a,&b,&c):…l分 if(a>b)t=a;a=b:b=t;}.....3 if(a>c){t=a;a=c;c=t; if(b>c)t=b:b=c;c=t;} printf("%d%d%d”,a,b,c):…l分 2.#include“stdio.h" void main() float score: printf(“Input a score:”): scanf(“%f”,&score): while(score>100|score=90)printf(“An”):3分 else if(score>?=8o)printf(“B\n”): else if(score>=7o)printf(“C\n”): else if(score>=60)printf(“D\n”): else printf(“E\n”): 〉 3.#include "stdio.h" #define N 10 void sort(inta[]);…l分 void main() int a[N],i,j; printf("input %d numbers:\n",N); for(i=0:i<N:i++)…2分 scanf("%d”,&a[i]): sort(a):…2分 for(i=0;i<N;i++) printf("%d“,a[i]): void sort(int a[] int i,j,temp:
②return (sum/10) 3.①m=length(str) ②*p!=‘\0’ 或 *p 4.①i%3==0 ②avg+=a[i] 或 avg=avg+a[i] 5.①*cp=*cp+32 或*cp=*cp+‘a’-‘A’ ②cp++ 五、程序设计题(3 个小题,共 20 分): 1.#include “stdio.h” void main( ) { int a,b,c,t; printf("input a,b and c:"); scanf("%d%d%d",&a,&b,&c); ……1 分 if(a>b) { t=a; a=b; b=t; } ……3 分 if(a>c) { t=a; a=c; c=t; } if(b>c) { t=b; b=c; c=t; } printf("%d%d%d",a,b,c); ……1 分 } 2.#include “stdio.h” void main( ) { float score; printf(“Input a score:”); scanf(“%f”,&score); while(score>100||score=90) printf(“A\n”); ……3 分 else if(score>=80) printf(“B\n”); else if(score>=70) printf(“C\n”); else if(score>=60) printf(“D\n”); else printf(“E\n”); } 3.#include "stdio.h" #define N 10 void sort(int a[ ]); ……1 分 void main( ) { int a[N],i,j; printf("input %d numbers:\n",N); for(i=0;i<N;i++) ……2 分 scanf("%d",&a[i]); sort(a); ……2 分 for(i=0;i<N;i++) printf("%d ",a[i]); } void sort(int a[ ]) { int i,j,temp;
for(i=0:i=‘A'&ch<=‘Z')?(ch+32):ch,该表达式 的值为。 A.A B.a C.Z D.z 6.以下叙述正确的是」 A.用do-while语句构成的循环不能用其它语句构成的循环来代替 B.用do-while语句构成的循环只能用break语句退出 C.用do-while语句构成循环时,当while后的表达式成立时结束循环 D.用do-whi1e语句构成循环时,当whi1e后的表达式不成立时结束循环 7.为了判断两个字符串s1和s2是否相等,应当使用一· A.if(sl==s2)B.if(sl=s2) C.if(strcmp(s1,s2))D.if(strcmp(s1,s2)==0) 8.当把以下四个表达式用作「语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是 A.k%2(k/2)B.k%2=1C.(k%2)1=0D.!k%2==1 9.下列是关于数组的叙述,不正确的是。 A.在定义数组时,数组名前的类型是指明数组各元素的类型 B.数组各元素的类型是相同的,而且是有序的 C.在引用数组元素时,数组元素的下标表达式必须是常量整型表达式 D.对整型数组来说,未初始化时,各数组元素的值是不确定的 10.有字符数组x[50],y[50],则正确的输出语句是一。 A.printf("%s","%s",x,y):B.puts(x):puts(y):
for(i=0;ia[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } 第二套试题 一、 单项选择题(15 个小题,每小题 2 分,共 30 分): 1.在一个源程序中,main 函数的位置_____。 A.必须在最前面 B.必须在系统调用的库函数的后面 C.没有具体要求 D.必须在最后 2.正确的用户自定义标识符是_____。 A.a=2 B.a+b C.name D.default 3.以下叙述中正确的是_____。 A.break 语句只能用于 switch 语句体中 B.continue 语句的作用是:使程序的执行流程跳出包含它的所有循环 C.break 语句只能用在循环体内和 switch 语句体内 D.在循环体内使用 break 语句和 continue 语句的作用相同 4.C 语言中最简单的数据类型包括_____。 A.整型、实型、逻辑型 B.整型、实型、字符型 C.整型、字符型、逻辑型 D.字符型、实型、逻辑型 5. 设 ch 是 char 型变量,其值为‘A’,且有表达式 ch=(ch>=‘A’&&ch<=‘Z’)?(ch+32):ch,该表达式 的值为_____。 A.A B.a C.Z D.z 6. 以下叙述正确的是_____。 A.用 do-while 语句构成的循环不能用其它语句构成的循环来代替 B.用 do-while 语句构成的循环只能用 break 语句退出 C.用 do-while 语句构成循环时,当 while 后的表达式成立时结束循环 D.用 do-while 语句构成循环时,当 while 后的表达式不成立时结束循环 7.为了判断两个字符串 s1 和 s2 是否相等,应当使用_____。 A.if(s1==s2) B.if(s1=s2) C.if(strcmp(s1,s2))真 D.if(strcmp(s1,s2)==0) 假 8.当把以下四个表达式用作 if 语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是 _____。 A.k%2 (k/2) B.k%2==1 C.(k%2)!=0 D.!k%2==1 9.下列是关于数组的叙述,不正确的是_____。 A.在定义数组时,数组名前的类型是指明数组各元素的类型 B.数组各元素的类型是相同的,而且是有序的 C.在引用数组元素时,数组元素的下标表达式必须是常量整型表达式 D.对整型数组来说,未初始化时,各数组元素的值是不确定的 10.有字符数组 x[50],y[50],则正确的输出语句是_____。 A.printf(″%s″,″%s″,x,y); B.puts(x);puts(y);
C.putchar(x,y):D.puts(x,y): 11.以下对一维数组a进行不正确初始化的是 A.intx[5]=}:B.intx[5]=(0,0,0): C.intx[]={0}:D.intx[5]={2*3}: 12.下列叙述中错误的是。 A.主函数中定义的变量在整个程序中都是有效的 B.在其他函数中定义的变量,没有特殊声明在主函数中不能使用 C.形式参数也是局部变量 D.复合语句中定义的变量只在该复合语句中有效 13.设有函数原型、一维数组和变量定义如下: 函数原型void fun(intx[],intn): 数组定义inta[4=1,2,3,4}:f1oatb[4]={1.0,2.0,3.0,4.0}: 变量定义intm=4,value: 下列函数调用中,正确的是」 。(函数返回值?) A.fun(a,m):B.value=fun(a[1],m): C.value=fun (a,4);D.fun(b,m); 14.以下对指针定义合法的语句是一。 A.int*p=&x=3:B.inty[5]={1,2,3,4,5},*p=&y: C.char ch[12]="Hello World",*c=ch:D.char *c,c='x',c=&c: 15.以“只读”方式打开文本文件aa.dat,下列语句中哪一个是正确的一。 A.fp=fopen("aa.dat","r+");B.fp=fopen("aa.dat","a"); C.fp=fopen("aa.dat","wb"):D.fp=fopen("aa.dat","r"); 二、填空题(15个小题,每空1分,共15分): 1.结构化程序设计的三种基本程序结构为顺序结构、选择结构和一。 2.条件“30≤x≤80且x≠50”的C语言表达式是 3.C语言源程序文件的后缀是 4.有如下定义:int m=1,n=1,x=3:则执行语句:if(!n)x+=1:if(m)x-=2:后,x的值是 5.执行如下语句: int i=10: do {i=i+10:}whi1e(i>20):后,i的值是 6.若a、b、c和d都是int型变量,则执行表达式d=(a=2,b=4,c=ab):后,d的值为 7.在使用数组元素的过程中,C语言编译系统」 一(是/否)检查下标“越界”。 8.设m=4,n=7,表达式x=(m++)*(-n)的值是 9.执行如下语句:intk:k值不确定 for(k=0:k=l1:k+):则该循环执行的次数是」 10.有如下定义:intx[5]={l,3,5,7,9},p=&x[2]:则执行语句printf(“%d”,知):的输出结果是 11.有如下结构体定义: struct date int year: int month; int day: }:
C.putchar(x,y); D.puts(x,y); 11.以下对一维数组 a 进行不正确初始化的是_____。 A.int x[5]={}; B.int x[5]=(0,0,0); C.int x[ ]={0}; D.int x[5]={2*3}; 12.下列叙述中错误的是_____。 A.主函数中定义的变量在整个程序中都是有效的 B.在其他函数中定义的变量,没有特殊声明在主函数中不能使用 C.形式参数也是局部变量 D.复合语句中定义的变量只在该复合语句中有效 13.设有函数原型、一维数组和变量定义如下: 函数原型 void fun(int x[ ],int n); 数组定义 int a[4]={1,2,3,4}; float b[4]={1.0,2.0,3.0,4.0}; 变量定义 int m=4,value; 下列函数调用中,正确的是_____。(函数返回值?) A.fun(a,m); B.value=fun(a[1],m); C.value=fun(a,4); D.fun(b,m); 14.以下对指针定义合法的语句是_____。 A.int *p=&x=3; B.int y[5]={1,2,3,4,5},*p=&y; C.char ch[12]=″Hello World″,*c=ch; D.char *c,c=‘x’,c=&c; 15.以“只读”方式打开文本文件 aa.dat,下列语句中哪一个是正确的_____。 A.fp=fopen(″aa.dat″,″r+″); B.fp=fopen(″aa.dat″,″a″); C.fp=fopen(″aa.dat″,″wb″); D.fp=fopen(″aa.dat″,″r″); 二、填空题(15 个小题,每空 1 分,共 15 分): 1. 结构化程序设计的三种基本程序结构为顺序结构、选择结构和________。 2. 条件“30≤x≤80 且 x≠50”的 C 语言表达式是________。 3. C 语言源程序文件的后缀是________。 4. 有如下定义:int m=1,n=1,x=3;则执行语句:if(!n) x+=1;if(m) x-=2;后,x 的值是________。 5. 执行如下语句: int i=10; do { i=i+10;}while(i>20);后,i 的值是________。 6. 若 a、b、c 和 d 都是 int 型变量,则执行表达式 d=(a=2,b=4,c=a*b);后,d 的值为________。 7. 在使用数组元素的过程中,C 语言编译系统________(是/否)检查下标“越界”。 8. 设 m=4,n=7,表达式 x=(m++)*(--n)的值是________。 9. 执行如下语句:int k;k 值不确定 for(k=0;k=1;k++); 则该循环执行的次数是________。 10. 有如下定义:int x[5]={1,3,5,7,9},*p=&x[2];则执行语句 printf("%d",*p);的输出结果是________。 11. 有如下结构体定义: struct date { int year; int month; int day; };
struct worklist char name[20]: char sex: struct date birthday: person: 若对结构体变量person的出生年份赋值为1990,则正确的赋值语句是」 12.C语言提供的预处理命令有一、文件包含和条件编译三种。 l3.设有数组定义:char string[]="Student",则数组所占的存储空间为 个字节。 14.指针变量只能存放内存储单元的 15.在C语言中,当函数返回值的类型缺省时,表示该函数返回值的类型是 三、写出程序的运行结果(5个小题,每小题4分,共20分): 1.#include "stdio.h" void main() {intx=l,y=0,a=0,b=0: switch(x) case 1:switch(y) case 0:a++;break: case 1:b++:break: case 2:a++:b++:break: printf(“a-%d,b=%dn”,a,b): 2.#include "stdio.h" void f(int b[] int i; for(i=2:i<6:i+) b[i]*=2: 人 void main() {inta[10]={1,2,3,4,5,6,7,8,9,10}: f(a): for(i=0:i<10:i++) printf(“%d”,a[i]): 3.#include "stdio.h" int a=5,b=7; int plus(int x,int y) int z: z=x+y:
struct worklist { char name[20]; char sex; struct date birthday; }person; 若对结构体变量 person 的出生年份赋值为 1990,则正确的赋值语句是________。 12. C 语言提供的预处理命令有________、文件包含和条件编译三种。 13.设有数组定义:char string[ ]= "Student",则数组所占的存储空间为________个 字节。 14.指针变量只能存放内存储单元的________。 15.在 C 语言中,当函数返回值的类型缺省时,表示该函数返回值的类型是________。 三、写出程序的运行结果(5 个小题,每小题 4 分,共 20 分): 1.#include "stdio.h" void main( ) { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) { case 0: a++;break; case 1: b++;break; } case 2: a++;b++;break; } printf(“a=%d,b=%d\n”,a,b); } 2.#include "stdio.h" void f(int b[ ]) { int i; for(i=2;i<6;i++) b[i]*=2; } void main( ) { int a[10]={1,2,3,4,5,6,7,8,9,10}; f(a); for(i=0;i<10;i++) printf(“%d”,a[i]); } 3.#include "stdio.h" int a=5,b=7; int plus(int x,int y) { int z; z=x+y;
return (z): void main() int a=4,b=5,c: c=plus(a+b): printf("a+b=%d\n",c): } 4.#include "stdio.h" int d=1: fun(int p) static int d=5: d+=p: return (d): void main() int a=3: printf("%d\n",fun(a+fun(d))): 5.#include "stdio.h" void main() {char ch[l5]={“abcdefg”}: char c,*cpl,*cp2; int i,n=0; cpl=ch: cp2=ch: while(*cp2!=\0') {n+:cp2+:} cp2-: n=n/2: for(i=0:i<n:i++) c=*cpl:*cpl=*cp2:*cp2=c: cpl++:cp2--; puts(ch): } 四、完善程序,在空白处填上相应的语句内容(5个小题,每小题4分,共20分) 1.输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。 #include "stdio.h" void main() int i,n=10,a[10];
return (z); } void main( ) { int a=4,b=5,c; c=plus(a+b); printf("a+b=%d\n",c); } 4. #include "stdio.h" int d=1; fun(int p) { static int d=5; d+=p; return (d); } void main( ) { int a=3; printf("%d\n",fun(a+fun(d))); } 5.#include "stdio.h" void main( ) { char ch[15]={“abcdefg”}; char c,*cp1,*cp2; int i,n=0; cp1=ch; cp2=ch; while(*cp2!=‘\0’) { n++;cp2++;} cp2--; n=n/2; for(i=0;i<n;i++) { c=*cp1;*cp1=*cp2;*cp2=c; cp1++; cp2--; } puts(ch); } 四、完善程序,在空白处填上相应的语句内容(5 个小题,每小题 4 分,共 20 分) 1. 输入 10 个整数,按每行 3 个数输出这些整数,最后输出 10 个整数的平均值。 #include "stdio.h" void main( ) { int i,n=10,a[10];