1、第一套试题 一、 单项选择题( 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 3 B 5 C 8 D 9 4读以下程序段,判断 a 的值为
2、_。 int *p,a=10,b=1; p= a=*p+b; A 12 B 10 C 11 D编译出错 5根据以下说明语句,则下面的叙述中不正确的是 _。 struct student int num; char name10; 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
3、C 7以下哪种方法不能对一维数组进行正确的初始化 _。 A int a =1,2,3; B int a5= ; C int a5=(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 53 B 17 C 20 D 48 10设 n为 float 型, m为 int 型,则以下能实现将 n中的数值保留小数点后两位,第三位进行四舍五入的表达式是 _。 A n
4、=(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 c5,*p=c; 则对 c 数组元素地址的正确引用是 _。 A p+2 B 执行语句 a=i+(j%4!=0); 后, a的值是 _。 2执行
5、以下程序后,运行结果是 _。 #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“, 若将 3 和 4 分别输入给 a和 b,则正确的输入方式
6、为 _ 。 三、程序分析题,写出程序的运行结果( 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=%dn”,a,b); 2在运行以下程序时,输入 “Turbo C+ 3.0” ,写出程序的运行结果。 #include void main( ) char str40; printf(“Input a strin
7、g:“); 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= if(a int a=5; int b=7; int plus(int x,int y) in
8、t z; z=x+y; return (z); void main( ) int a=4,b=5,c; c=plus(a,b); printf(“a+b=%d n”,c); 四、程序填空题,将下面程序补充完整( 10个填空,每空 2 分,共 20 分): 1输出九九表。 #include “stdio.h” void main( ) int i,j; for(i=1;i=A a=b; b=t; 3 分 if(ac) t=a; a=c; c=t; if(bc) t=b; b=c; c=t; printf(“%d%d%d“,a,b,c); 1 分 2 #include “stdio.h” void
9、 main( ) float score; printf(“Input a score:”); scanf(“%f”, while(score100|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 aN,
10、i,j; printf(“input %d numbers:n“,N); for(i=0;iaj+1) temp=aj; aj=aj+1; aj+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 语句的作用是:使程序的执行流程跳出包含
11、它的所有循环 C break 语句只能用在循环体内和 switch 语句体内 D在循环体内使用 break 语句和 continue 语句的作用相同 4 C 语言中最简单的数据类型包括 _。 A整型、实型、逻辑型 B整型、实型、字符型 C整型、字符型、逻辑型 D字符型、实型、逻辑型 5. 设 ch是 char 型变量,其值为 A ,且有表达式 ch=(ch=A&ch20);后, i的值是 _。 6 若 a、 b、 c 和 d 都是 int 型变量,则执行表达式 d=(a=2,b=4,c=a*b);后, d的值为 _。 7 在使用数组元素的过程中, C语言编译系统 _(是 /否)检查下标 “ 越
12、界 ” 。 8 设 m=4,n=7,表达式 x=(m+)*(-n)的值是 _。 9. 执行如下语句: int k; k值不确定 for(k=0; k=1; k+); 则该循环执行的次数是 _。 10. 有如下定义: int x5=1,3,5,7,9,*p=&x2;则执行语句 printf(“%d“,*p);的输出结果是 _。 11. 有如下结构体定义: struct date int year; int month; int day; ; struct worklist char name20; char sex; struct date birthday; person; 若对结构体变量 p
13、erson 的出生年份赋值为 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
14、: 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; i6; i+) bi*=2; void main( ) int a10=1,2,3,4,5,6,7,8,9,10; f(a); for(i=0; i10; i+) printf(“%d”,ai) ; 3 #include “stdio.h“ int a=5,b=7; int plus(int x,int y) int z; z=
15、x+y; return (z); void main( ) int a=4,b=5,c; c=plus(a+b); printf(“a+b=%dn“,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(“%dn“,fun(a+fun(d); 5 #include “stdio.h“ void main( ) char ch15=“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; in; 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,a10;