②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<0)…2分 {printf(“Error!Please input again:\n”): scanf(“%f”,&score): if(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<0) ……2 分 { printf(“Error! Please input again:\n”); scanf(“%f”,&score); } if(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<N-1;i+)…5分 for(j=0:j<N-1-i:j++) if(a[j]a[j+1]) temp=a[j]:a[j]=a[j+1]:a[j+l]=temp; 第二套试题 一、单项选择题(15个小题,每小题2分,共30分): l.在一个源程序中,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-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;i<N-1;i++) ……5 分 for(j=0;j<N-1-i;j++) if(a[j]>a[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];