《2022年C语言程序设计试题及答案 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言程序设计试题及答案 .pdf(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C 语言程序设计(本试卷包括第一卷和第二卷,答卷时间总共120 分钟) 第一卷第一部分:基础知识(20 项,共 40 分)1一个 C 语言程序是由()组成的。A主程序B子程序C函数D过程2转换说明符 %x 的输出形式是() 。A十进制B八进制C十六进制D二进制3若 a、b 均为 int 型变量,且a=100,则关于循环语句for(b=100;a!=b;+a,+b) printf ( “ - “) ;的正确说法是() 。A循环体只执行一次B死循环C循环体一次也不执行D输出 - 4若 x、y、z 均为 int 型变量,则执行下列语句后的z 值为() 。x=1; y=2; z=3; z=(xy)?z
2、 :y ; z = (z=1;n-), 下列语句实现将S2 所指字符数组中前n 个字符复制到S1 所指字符数组中,其中代码不正确的是() 。A*S1+=*S2+ BS1n-1=S2n-1 C *(S1+n-1)=*(S2+n-1) D* (+S1)=* (+S2)17调用函数的实参与被调用函数的形参应该有如下关系() 。A只要求实参和形参个数相等B只要求形参和实参顺序相同C只要求实参和形参数据类型相同D上述三点均需具备18联合体成员的数据类型() 。A相同B可以不同也可以相同C长度一样D是结构体变量19由系统分配和控制的标准输出文件为() 。A键盘B磁盘C打印机D显示器20 C 语言标准库函数
3、fread(fd,buffer,n) 的功能是() 。A从文件fd 中读取长度不超过n 个字节的数据送入buffer 指向的内存区域B从文件fd 中读取长度不超过n-1 个字节的数据送入buffer 指向的内存区域C从文件fd 中读取长度不超过n 个字符送入buffer 指向的内存区域D从文件 fd 中读取长度不超过n-1 个字符送入buffer 指向的内存区域第二部分:简单程序(12 项,共 30 分)21下列程序main() int x,y,z; x=y=2;z=3; y=z+-1; printf(“%dt ”,x,y);y=+x-1; printf(“ %d n” ,x,y);y=z-1
4、; printf(“%dt ”,z,y);y=-z-1; printf(“%dn”,z,y); 运行后输出的数据为?_。A. 3 1 4 2 B. 3 1 3 3 C. 2 2 3 2 D. 2 1 3 2 2 4 1 3 2 4 2 2 3 3 2 1 1 3 1 2 22.下列程序main() int i,j;char *a,c; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 37 页 - - - - - - - - - a=” computer ”;printf(
5、“ %s” ,a);for(i=0,j=7;icomputer B. computer-retupmoc a3=u a5=m C. computer-retupmoc D. computer-retupmoc a4=p a2=t 23.下列程序int sum(int n) int p=1,s=0,i; for(i=1;i=n;i+) s+=(p*=i); return s; main() printf(“ sum(5)=%dn” ,sum(5); 运行后输出的数据为_ _ A.sum(5)=151 B.sum(5)=152 C.sum(5)=153 Dsum(5)=155 24.下列程序mai
6、n() static int a=5,6,7,3,2,9; int s1,s2,i,*ptr; s1=s2=0; ptr=&a0; for(i=0;i5;i+2=2) s1+=*(ptr+i); s2+=*(ptr+i+1); printf(“ s1=%d,s2=%dn” ,s1,s2); 运行后输出的数据为_ A.s1=18,s2=14 B.s1=14,s2=32 C.s1=14,s2=18 D.s1=15,s2=19 25.下列程序int c=1; main() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理
7、- - - - - - - 第 3 页,共 37 页 - - - - - - - - - static int a=5;int b=6; printf(“ a=%d b=%d c=%dn”,a,b,c); func(); printf(“ a=%d,b=%d,c=%dn” ,a,b,c);func(); func() static int a=4;int b=10; a+=2; c+=10; b+=c; printf(“ a=%d,b=%d,c=%dn” ,a,b,c); 运行后输出的数据为_ _. A. a=5 b=6 c=1 B. a=5 b=6 c=1 a=6 b=21 c=11 a=7
8、 b=17 c=11 a=5 b=6 c=11 a=5 b=6 c=11 a=8 b=31 c=21 a=9 b=17 c=21 C. a=5 b=6 c=1 D. a=5 b=6 c=1 a=6 b=21 c=11 a=7 b=17 c=11 a=6 b=21 c=11 a=7 b=17 c=11 a=8 b=31 c=21 a=9 b=38 c=21 26已知struct student char name; int student_n; char grade; ; struct student temp,*p=&temp; temp.name= ”chou ”;则下面不正确的是_。表达式
9、值A.pname chou B.(*p) name+2 h C.*p name+2 e D.*(p name+2) o 27.下列程序#define MAX 10 main() int i,sum,a =1,2,3,4,5,6,7,8,9,10; sum=1; for(i=0;iMAX;i+) sum-=ai; printf(“ SUM=%d ” ,sum);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 37 页 - - - - - - - - - 程序运行结果是: A
10、.SUM=55 B.SUM=-54 C.SUM=-55 D.SUM=54 28.下列程序void inv(int*x,int n) int *p,t,*i,*j,m=(n-1)/2; i=x; j=x+n-1; p=x+m; for(;ip;i+,j-) t=*i; *i=*j; *j=t; return; main( ) static int i,a10=3,7,9,11,0,6,7,5,4,2; inv(a,10); for(i=0;i10;i+) printf(“ %d,” ,ai); 程序运行结果 : A.0,2,3,4,5,6,7,7,9,11 B.11,9,7,7,6,5,4,3,
11、2,0 C.3,7,9,11,0,6,7,5,4,2 D.2,4,5,7,6,0,11,9,7,3 29.下列程序main() int a10,b10,*pa,*pb,i; pa=a;pb=b; for(i=0;i3;i+,pa+,pb+) *pa=i;*pb=2*i; printf(“%d n”,*pa,*pb); printf(“n” );pa=&a0; pb=&b0; for(i=0;i3;i+) *pa=*pa+i; *pb=*pb*i; printf(“%d n”,*pa+,*pb+); 运行后输出的数据为_。A. 0 0 B.0 0 C. 0 0 D. 0 0 名师资料总结 - -
12、 -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 37 页 - - - - - - - - - 1 2 1 2 1 2 2 2 2 4 2 4 2 4 2 4 0 0 0 0 0 0 0 0 2 2 2 2 1 2 1 2 4 8 2 4 2 4 4 8 30.下列程序copy_string(from,to) char *from,*to; while(*from) *to+=*from+; *to=? 0?; main() static char s1 =”c_program. ”;stat
13、ic char s280; copy_string(s1,s2) ;printf( “%sn”,s2);copy_string(“ 123” ,s2);printf(“ %sn” ,s2); 运行后输出的数据为() 。A. c_program 123 B.123 C. c_program123 D. c_program 123 31.下列程序:#include main() char a40,b40; int i,j; printf(“ Enter the string:” );scanf(“ %s” ,a);i=j=0; while(ai!=?0?) if(!(ai=?0?&ai=?9?)
14、bj=ai; j+; +i; bj=? 0?;printf(“ %s” ,b); 运行后输出的结果是() 。A. 把键盘输入的字符串显示在屏幕上B. 把键盘输入的字符串中的数字字符删掉,然后显示该字符串C. 把键盘输入的字符串中的字符0 和 9 删掉,然后显示该字符串D. 只保留由键盘输入的字符串中的字母数字,然后显示该字符串名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 37 页 - - - - - - - - - 32下列程序#include main() char
15、a80; int i,j; printf(“Enter the string:”);scanf(“ %s” ,a);i=0; while(ai!=?0?) if(ai=?A ?&ai=?Z?)ai=ai- ,A?+?a?; printf(“ %s” ,a); 运行后输出的结果是() 。A. 把键盘输入的字符串中的大写字母变换成小写字母,然后显示变换后的字符串。B. 把键盘输入的字符串中的数字字符删除掉,然后显示该字符串。C. 把键盘输入的字符串中的小写字母变换成大写字母,然后显示变换后的字符串。D. 把键盘输入的字符串原封不动地显示在屏幕上。第二卷说明: (1)第二卷含二大题,均属填空题,每题
16、各有5 个空栏,在阅读和理解原题程序的基础上,在空栏处填入适当的字符、语句,以构成一个正确的C 语言程序。(2)每空栏填对得3 分,两大题共10 个空栏,全填对得30 分。试题一一个整数称为完全平方数,是指它的值是另一个整数的平方。如81 是个完全平方数,因为它是 9 的平方。下列程序是在三位的正整数中寻找符合下列条件的整数:它既是完全平方数,且三位数字中又有两位数字相同:例如144(12*12) 、676(26*26)等,从程序中找出并输出所有满足上述条件的三位数。程序如下:main() int n,k,a,b,c; for(k=1; ;k+) _ _ if(n100) _ if(n1+2&
17、2|2*44-!0后, x 的值为() 。(A)-l (B)O (C)1 (D)5 6、以下变量x、y、z 均为 double 类型且已正确赋值,不能正确表示数学式子:(x)/(yz)的 c 语言表达式是() 。(A)x/y*z (B)x*(1/(y*z) (C) x/y*1/z (D)x/y/z 7、设有以下说明语句struct ex int x ;float y; char z;example; 则下面的叙述不正确的是() 。(A)struct 是结构体类型的关键字(B)example是结构体类型名(C)x,y,z 都是结构体成员名(D)struct ex 是结构体类型8、假定 w 、x、
18、y、z、m 均为 int 型变量;有如下程序段:w=1;x=2 ;y=3;z=4 ;m=(wx)?w : x;m=(my)?m :y; m=(mz)?m :z;则该程序段执行后,m 的值是() 。(A)4 (B)3 (C)2 (D) 1 9、在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是() 。(A) 地址传递(B) 单向值传递(C) 由实参传给形参,再由形参传回实参(D) 传递方式由用户指定10、以下定义语句中,错误的是() 。(A)int a=1 ,2;(B) char *a3; (C)char s10=text ;(D) int n=5,an; 11、下列程厅执行后的
19、输出结果是() 。main() char arr24 ; strcpy(arr,you) ;strcpy(arr1,me); arr03=& ;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 37 页 - - - - - - - - - printf(%sn,arr) ; (A)you&me (B)you (C) me (D)err 12、标有 /* */ 的语句的执行次数是() 。int y,i;for(i=O ;ipup.sex (C)(*p).pup.sex (D)
20、(*p).sex 18、若已定义了如下的共用体类型变量x,则 x 所占用的内存字节数为() 。union data int i; char ch;double f; x ;(A) 7 (B) 11 (C)8 (D) 10 19、若有下面的说明和定义:struct test int m1;char m2;float m3; union uu char u15;int u22;ua; myaa;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 37 页 - - - - - -
21、 - - - 则 sizeof(struct test)的值是() 。(A) 12 (B) 16 (C) 14 (D)9 20、若要打开: A 盘上 user 子目录下名为abc.txt 的文本文件进行读、写操作,下面符合此要求的函数调用是() 。(A)fopen(A :userabc.txt,r) (B) fopen(A :userabc.txt,r+) (C)fopen(A :userabc.txt,rb) (D) fopen(A :userlabc.txt,w) 第二部分:简单程序(12 题,共 30 分) 21、以下程序的运行情况是()。main() int i=1,sum=0 ;wh
22、ile(i=85); case B:case C:printf(=60);case D:printf(=85 (B)=60 (C)=6060error (D) error 23.有如下程序main() int x=23; do printf(%d ,x-);while(!x) ; 该程序的执行结果是() 。(A)321 (B)23 (C) 不输出任何内容(D)陷入死循环24.有如下程序int func(int a,int b) return (a+b); main() int x=2,y=5,z=8 ,r; r=func(func(x ,y) ,z);printf(%dn,r) ; 该程序的输
23、出结果是()。(A) 12 (B) 13 (C)14 (D)15 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 37 页 - - - - - - - - - 25.以下程序的输出结果是()。main() int a ,b;for(a=1,b=1;a=10) break;if(b%3=1) b+=3 ;continue; printf(%dn,a); (A)101 (B) 6 (C)5 (D)4 26.以下程序的输出结果是()。int a,b;void fun() a=
24、100;b=200; main() int a=5 ,b=7;fun();printf(%d%dn ,a,b); (A) 100200 (B)57 (C)200100 (D)75 27.下面的程序执行后,文件testt 中的内容是()。#include void fun(char *fname,char *st) FILE *myf; int i; myf=fopen(fname,w); for(i=0 ;istrlen(st);i+)fputc(sti,myf) ;fclose(myf) ; main() fun(test.t,new world);fun(test.t,hello,); (
25、A) hello,(B)new,worldhello (C) new,world (D)hello,rld 28.以下程序的运行结果是()。#include main() static char s30=abcdefg ;static char t=abcd ;int i,j ;i=0;while(si!=0) i+; j=0; whi1e(tj!=0) si+j=tj;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 37 页 - - - - - - - - - j+
26、; si+j=0 ;printf(%sn ,s); (A) abcdabcdefg (B)abcdefg (C)abcd (D)abcdefgabcd 29.有如下程序main() char ch25=6937,8254,*p2; int i, j, s=0;for(i=0 ;i2;i+) pi=chi; for(i=0 ;i0 ;j+=2) s=10*s+pij-0 ;printf(%dn ,s); 该程序的输出结果是()。(A)69825 (B)63825 (C)6385 (D)693825 30.若已建立如下图所示的单向链表结构在该链表中 ,指针 p,s 分别指向图中所示结点,则不能将s
27、 所指的结点插入到链表末尾仍构成单向链表的语句组是() 。(A) p=p-next;s-next=p;p-next=s; (B) p=p-next;s-next=p-next;p-next=s; (C) s-next=NULL;p=p-next;p-next=s (D) p=(*p).next;(*s).next=(*p).next; (*p).next =s; 31.请选择正确的运行结果填入() 中。include int x,y ;num() int a=15,b=10;int x,y;y=a-b;y=a+b; return; main() int a=7,b=5;x=a+b;y=a-b;
28、 num();printf(%d ,%dn ,x,y) ; (A) 12,2 (B) 5,25 (C)2,12 (D) 不确定32.以下程序的输出结果是() 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 37 页 - - - - - - - - - #define M(x,y,z) x*y+z main() int a=1 ,b=2,c=3;printf(%dn ,M(a+b,b+c,c+a) ; (A)19 (B)17 (C)15 (D)12 第二卷说明: (1)
29、第二卷含两大题,均属填空题,每题各有5 个空栏,在阅读和理解原题程序的基础上,在空栏处填入适当的字符、语句,以构成一个正确的C 语言程序。(2)每空栏填对得3 分,两大题共10 个空栏,全对得30 分。试题一:有一函数,实参传来一个字符串,统计此字符串中字母、数字、空各和其他字符的个数,在主函数中输入字符串以及输出上述的结果。int letter,digit,space,others;/*是全局变量 */ main() int count(char _(1)_); char text80;printf(nlnput string :n);_(2)_;printf(string :);puts(
30、text);letter=O ;digit=O ;space=O;others=O;_(3)_; printf(letter :%d,digit :%d,space:%d,other:%dn,letter,digit ,space,others); int count(char str) int i ;for(i=O ;stri!=0 ;i+) if(_(4)_=a&stri=A&stri=0&stri=9) digit+ ;else if(stri= ) space+;else _(5)_; 试题二:把下列程序补充完整,实现两个字符串的比较,即自己写个strcmp 函数,函数原型为: int
31、 strcmp(char *p1,char *p2) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 37 页 - - - - - - - - - 设 p1 指向字符串s1,p2 指向字符串 s2。要求:当s1=s2 时,返回值为0。当 sls2 时,返回它们两者的第一个不同的字符的ASCII 码差值 (如“BOY”与“BAD ” ,第二个字母不同,“O”与 “A”之差为 79-65=14);如果 s1s2,则输出正值;如果sls2,则输出负值。main() int m
32、 ;char _(6)_, str220 ,*p1,*p2 ;printf(Input two string :n);scanf(%s,strl) ;scanf(%s ,_(7)_); p1=&strl0; p2=_(8)_; m=strcmp(p1,p2) ;printf(result:%d,n,m); strcmp(char _(9)_,char *p2) /*两个字符串比较的函数*/ int i ;_(10)_;while(*(pl+i)=*(p2+i) if(*(p1+i+)=0) return(0);return(*(pl+i)-*(p2+i); /*不等时返回结果为第一个不等字符A
33、SCII 码的差值 */ 参考答案第一卷第一部分:基础知识1.A 2.B 3.B 4.A 5.C 6.A 7.B 8.D 9.B 10.D 11.A 12.C 13.A 14.A 15.D 16.C 17.D 18.C 19.A 20.B 第二部分:简单程序21.D 22.C 23.B 24.D 25.D 26.B 27.A 28.D 29.C 30.A 31.A 32.D 第二卷试题一:1、str 2、gets(text)或 scanf(“%s”,text) 3、count(text) 4、stri 5、others+ 试题二: 6、str120 7、str2 8、&str20 9、*p1
34、10、i=0 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 37 页 - - - - - - - - - C 语言程序设计 ( 卷)考核班级学生数印数考核方式闭卷 考核时间120 分钟(本试卷包括第一卷和第二卷,答卷时间总共120 分钟) 第一卷本卷共 70 分,其中第126 题每题 2 分,第 2732 题每题 3 分。第一部分:基础知识1、 一个 C 语言程序是从 _开始执行的。A、程序中的第一个语句B、包含文件(头文件)的第一个函数C、名为 main 的函数D、
35、程序中的第一个函数2、 语句 while(!E) , 中的条件! E 等价于 _ A、 E=0 B、 E!=1 C、 E!=0 D 、E 3、 若有以下类型说明语句:char w; int x; float y; double z; 则表达式w*x+z-y的结果为 _类型。A、float B 、double C、 int D、char 4、 一个函数返回值的类型是由_决定的A、return 语句中的表达式类型;B、定义函数时所指定的函数类型C、调用该函数的函数的类型D、调用函数时临时类型5、 设 x、y、z 和 k 都是 int 型变量,则执行下列表达式后,变量x 的值为 _. x=(y=4,
36、z=16,k=32); A、4 B、16 C、32 D 、52 6、 有以下程序:main( ) int i=10,j=1; printf(“%d,%dn”,i -,+j); 执行后输出的结果是_ A、9,2 B、10,2 C、9, 1 D、10,1 7、以下指针 s 的指字符串的长度为_ char *s=” ?Name n”;A、19 B、 15 C、18 D、-12 8、 设有语句int a=3;则执行了语句a+=a-=a*a;后,变量a 的值是 _ A、3 B、0 C、9 D、-12 9、 对于下面的for 循环语句,可以断定它_。for(x=0,y=0;(y!=123)&(x4);x+
37、) printf(“- “);A、是无限循环(死循环)B、循环次数不定C、共执行4 次循环D、共执行3 次循环10、设有以下语句,则_不是对 a 数组元素的正确引用,其中0名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 37 页 - - - - - - - - - int a10=0 ,1,2, 3,4,5,6,7,8,9 ;int *p=a; A、ap-5 B 、*(&ai) C、ai D 、*(a+i) 11、为了判断两个字符串s1 和 s2 是否相等,应当使用_
38、A、 if(s1=s2) B 、if(s1=s2) C、if(strcmp(s1,s2) D 、if(strcmp(s1,s2)=0) 12、对于 C 语言程序中的函数,下列叙述中正确的是_ A、函数的定义不能嵌套,但函数调用可以嵌套B、函数的定义可嵌套,但函数的调用不能嵌套C、函数的定义和调用均不能嵌套D、函数的定义和调用均可嵌套13、有以下程序main() int i; for(i=0;i5) printf(“ %dn” ,m);else printf(“ %d n”,m -); A、7 B、6 C、5 D、4 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -
39、- - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 37 页 - - - - - - - - - 23、当 a=1, b=3, c=5, d=4 时,执行下面一段程序后,x 的值为 _ if (ab) if(cd) x=1; else if(ac) if(bd) x=2; else x=3; else x=6; else x=7; A、1 B、2 C、3 D、6 24、 以下程序企图把从终端输入的字符输出到名为abc.txt 的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。出错的原因是_ #include main( ) FILE
40、*fout; char ch; fout=fopen( ,abc.txt?,?w?);ch=fgetc(stdin); while(ch!=?#?)fputc(ch,fout); ch=fgetc(stdin); fclose(fout); A、函数 fopen 调用形式有误B、输入文件没有关闭C、函数 fgetc 调用形式有误D、文件指针stdin 没有定义25、有以下程序,执行后输出结果是_ main() union unsigned int n; unsigned char c; ul; ul.c=?A?;printf(“ %cn”,ul.n); A、产生语法错B、随机值C、A D、65
41、 26、有以下程序,执行后输出结果是_ main() int m 3=1,4,7,2,5,8,3,6,9; int i,k=2; for(i=0; i3; i+) printf(“%d ”, mki);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 37 页 - - - - - - - - - A、4 5 6 B、2 5 8 C、3 6 9 D、7 8 9 27、以下程序运行后,输出结果是_ int func(int a, int b) static int m=0,i
42、=2; i+=m+1; m=i+a+b; return(m); main() int k=4,m=1,n; n=func(k, m); printf(“%d, ”, n);n=func(k, m); printf(“%d ”, n); A、8, 15 B、 8, 16 C、8, 17 D、 8, 8 28、在执行以程序时,如果从键盘上输入:ABCdef,则输出结果为:_ #include main( ) char ch; while(ch=getchar()!=?n?) if(ch=?A?&ch=?a? & ch=?z?)ch=ch-32; printf(“ %c”,ch); printf(“
43、n” ); A、 ABCdef B、abcDEF C、abc D、DEF 29、有以下程序,执行后输出结果是_ int *f(int *x, int *y) if(*x*y) return x; else return y; main( ) int a=7,b=8,*p,*q,*r; p=&a; q=&b; r=f(p,q); printf(“ %d,%d,%dn” ,*p,*q,*r);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 37 页 - - - - - -
44、- - - A、7, 8, 8 B 、7, 8, 7 C、 8, 7, 7 D、8, 7, 8 30、下面程序的输出结果是_ fun(char *s, int p1, int p2) char c; while (p1p2) c=sp1; sp1=sp2; sp2=c; p1+;p2-; main( ) char a =” ABCDEFG ” , k, *p;fun(a, 0, 2); fun(a, 4, 6); printf(“ %sn”,a); A、 ABCDEFG B、DEFGABC C、GFEDCBAD、CBADGFE 31、以下程序的运行结果是_ #include long func
45、(int x) long p; if(x=0|x=1) return (2); p=x*func(x-1); return (p); main( ) printf(“ %d n”,func(4); A、8 B、12 C、24 D 、48 32、下面的程序运行后,全局量t.x 和 t.s 的正确结果为 _ struct tree int x; char *s; t; func(struct tree t) t.x=10; t.s= ” computer ”;return(0); main() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - -
46、 - - 名师精心整理 - - - - - - - 第 21 页,共 37 页 - - - - - - - - - t.x=1; t.s= ”minicomputer ”;func(t); printf(“ %d, %s ” , t.x, t.s); A、10, computer B、1, computer C、1, minicomputer D、10, minicomputer 第二卷说明: (1)第二卷均为填空题,在阅读和理解原题程序的基础上,在空栏处填入适当的字符、语句以构成一个正确的C 语言程序。(2)答本卷的题目时,要在本卷答题纸上编号对应的栏目中,用钢笔或圆珠笔书写。用铅笔答题无效
47、,在试题上直接答题者无效。请勿在第一卷的答题卡上填写本卷答案。(3)每空栏3 分,共 10 个空栏,共30 分。试题一下列程序是求1+1/2+1/4+ ,+1/50 的值。#include “ stdio.h”main( ) int i=2; float sum=1; while (_(1)_) sum=sum+1.0/i; _(2)_; printf(“ sum=%f” , sum); 试题二下列函数用于统计一行字符中的单词个数,单词之间用空格分隔。word_num(char str ) int i, num=0, word=0; for(i=0; stri!=_(3)_; i+) if(_
48、(4)_=? ,)word=0; else if(word=0) word=1; _(5)_; return(num); 试题三以下函数的功能是删除字符串s 中的所有数字字符。void dele (char *s) int n=0,i; for(i=0; si; i+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 37 页 - - - - - - - - - if(_(6)_) sn+=si; sn=_(7)_; 试题四以下程序的功能是:从键盘输入若干个学生的成绩,
49、统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。main( ) float x1000, sum = 0.0, ave, a ; int n=0, i; printf(“ Enter mark: n” );scanf(“ %f”,&a);while(a=0.0 & n1000) sum =_(8)_; xn=_(9)_; n+; scanf( % f , &a); ave= sum / n ; printf(“ Output: n” );printf(“ ave=%fn” ,ave);for(i=0; in; i+) if_(10)_ n”,xi); 参考答案第一卷一、基础
50、知识1.C 2.A3.B 4.B 5.C 6.B 7.B 8.D 9.C 10.A11.D 12.A13.A14.D 15.A16.B 17.C 18.B 19.C 20.B 二、简单程序21.B 22.B 23.B 24.A25.C 26.C 27.C 28.B 29.B 30.D 31.D 32.C 第二卷1、 i=0&si=9) 7、 0 8、 sum+a 9、 a 10、(xin,则该结点没有()。A)左子结点B)右子结点C)左子结点和右子结点D)左子结点、右子结点和兄弟结点(4)快速排序算法的平均时间复杂度为()。A)O(n)B)O(n2)C)O(nlog2n)D)O(log2n!