33 C语言程序设计试题及答案.pdf
《33 C语言程序设计试题及答案.pdf》由会员分享,可在线阅读,更多相关《33 C语言程序设计试题及答案.pdf(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C 语言程序设计(卷)考核班级(本试卷包括第一卷和第二卷,答卷时间总共120 分钟)第一卷第一部分:基础知识(20 项,共 40 分)1一个 C 语言程序是由(C)组成的。A主程序B子程序C函数D过程2转换说明符%x 的输出形式是(C)。A十进制B八进制C十六进制D二进制3若 a、b 均为 int 型变量,且 a=100,则关于循环语句 for(b=100;a!=b;+a,+b)printf(“-“);的正确说法是(C)。A循环体只执行一次B死循环C循环体一次也不执行D输出-4 4若若 x x、y y、z z 均为均为 intint 型变量,则执行下列语句后的型变量,则执行下列语句后的 z z
2、 值为值为(A A)。x=1;y=2;z=3;z=(xy)?z:y;z=(zy)?z:y;z=(z=1;n-),下列语句实现将 S2 所指字符数组中前 n 个字符复制到 S1 所指字符数组中,其中代码不正确的是(D)。A*S1+=*S2+BS1n-1=S2n-1C*(S1+n-1)=*(S2+n-1)D*(+S1)=*(+S2)17调用函数的实参与被调用函数的形参应该有如下关系(D)。A只要求实参和形参个数相等B只要求形参和实参顺序相同C只要求实参和形参数据类型相同D上述三点均需具备18联合体成员的数据类型(B)。A相同B可以不同也可以相同C长度一样D是结构体变量19由系统分配和控制的标准输出
3、文件为(D)。A键盘B磁盘C打印机D显示器20C 语言标准库函数 fread(fd,buffer,n)的功能是(A)。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%dt
4、”,x,y);y=+x-1;printf(“%d t%dn”,x,y);y=z-1;printf(“%dt%dt”,z,y);y=-z-1;printf(“%dt%dn”,z,y);运行后输出的数据为_C_。A.3 1 4 2B.3 1 3 3C.2 2 3 2D.2 1 3 22 4 1 32 4 2 23 3 2 11 3 1 222.下列程序main()int i,j;char*a,c;a=”computer”;2printf(“%s”,a);for(i=0,j=7;i%sn”,a);c=aj-1,i=2+j;printf(“a%d=%cn”,i,c);运行后输出的数据为_B.A.com
5、puter-computerB.computer-retupmoca3=ua5=mC.computer-retupmocD.computer-retupmoca4=pa2=t23.下列程序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)=151B.sum(5)=152C.sum(5)=153Dsum(5)=15524.下列程序main()static int a=5,6,7,3,2,9;int s1,s2,i,*ptr
6、;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=14B.s1=14,s2=32C.s1=14,s2=18D.s1=15,s2=1925.下列程序int c=1;main()3static 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
7、=10;a+=2;c+=10;b+=c;printf(“a=%d,b=%d,c=%dn”,a,b,c)运行后输出的数据为_A _.A.a=5 b=6 c=1B.a=5 b=6 c=1a=6 b=21 c=11a=7 b=17 c=11a=5 b=6 c=11a=5 b=6 c=11a=8 b=31 c=21a=9 b=17 c=21C.a=5 b=6 c=1D.a=5 b=6 c=1a=6 b=21 c=11a=7 b=17 c=11a=6 b=21 c=11a=7 b=17 c=11a=8 b=31 c=21a=9 b=38 c=2126已知struct studentchar name;i
8、nt student_n;char grade;struct student temp,*p=&temp;temp.name=”chou”则下面不正确的是_。表达式值A.pnamechouB.(*p)name+2hC.*pname+2eD.*(pname+2)o27.下列程序#define MAX 10main()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程序运行结果是:A.SUM=55B.SUM=-54C.SUM=-55D.SUM=5428.下列程序void inv(
9、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,11B.11,9,7,7,6,5,4,3,2,0C.3,7,9,11,0,6,7,5,4,2D.2,4,5,7,6,0,11,9,7,329.下列程序main()int a10,b10,*pa,
10、*pb,i;pa=a;pb=b;for(i=0;i3;i+,pa+,pb+)*pa=i;*pb=2*i;printf(“%dt%dn”,*pa,*pb)printf(“n”)pa=&a0;pb=&b0;for(i=0;i3;i+)*pa=*pa+i;*pb=*pb*i;printf(“%dt%dn”,*pa+,*pb+)运行后输出的数据为_。A.00B.00C.00D.005121212222424242400000000222212124824244830.下列程序copy_string(from,to)char*from,*to;while(*from)*to+=*from+;*to=0;
11、main()static char s1=”c_program.”;static char s280;copy_string(s1,s2);printf(“%sn”,s2);copy_string(“123”,s2);printf(“%sn”,s2);运行后输出的数据为()。A.c_program123B.123C.c_program123D.c_program12331.下列程序:#includemain()char a40,b40;int i,j;printf(“Enter the string:”);scanf(“%s”,a);i=j=0;while(ai!=0)if(!(ai=0&ai
12、=9)bj=ai;j+;+i;bj=0;printf(“%s”,b);运行后输出的结果是()。A.把键盘输入的字符串显示在屏幕上B.把键盘输入的字符串中的数字字符删掉,然后显示该字符串C.把键盘输入的字符串中的字符0 和 9 删掉,然后显示该字符串D.只保留由键盘输入的字符串中的字母数字,然后显示该字符串632下列程序#includemain()char 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
13、.把键盘输入的字符串中的大写字母变换成小写字母,然后显示变换后的字符串。B.把键盘输入的字符串中的数字字符删除掉,然后显示该字符串。C.把键盘输入的字符串中的小写字母变换成大写字母,然后显示变换后的字符串。D.把键盘输入的字符串原封不动地显示在屏幕上。第二卷试题一一个整数称为完全平方数,是指它的值是另一个整数的平方。如81 是个完全平方数,因为它是 9 的平方。下列程序是在三位的正整数中寻找符合下列条件的整数:它既是完全平方数,且三位数字中又有两位数字相同:例如144(12*12)、676(26*26)等,从程序中找出并输出所有满足上述条件的三位数。程序如下:n=k*k continuebre
14、akn%100/10 或(n-100*a)/10 或 n/10-(n/100)*10int x,int y,int zmain()int n,k,a,b,c;for(k=1;k+)_if(n100)_if(n1+2&2|2*44-!0 后,x 的值为(C)。(A)-l(B)O(C)1(D)56、以下变量 x、y、z 均为 double 类型且已正确赋值,不能正确表示数学式子:(x)/(yz)的 c 语言表达式是(A)。(A)x/y*z(B)x*(1/(y*z)(C)x/y*1/z(D)x/y/z7、设有以下说明语句struct exint x;float y;charz;example;则下面
15、的叙述不正确的是(B)。(A)struct 是结构体类型的关键字(B)example 是结构体类型名(C)x,y,z 都是结构体成员名(D)struct ex 是结构体类型8、假定 w、x、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 的值是(D)。(A)4(B)3(C)2(D)19、在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()。(A)地址传递(B)单向值传递(C)由实参传给形参,再由形参传回实参(D)传递方式由用户指定10、以下定义语句中,错误的
16、是(D)。(A)inta=1,2;(B)char*a3;(C)chars10=text;(D)int n=5,an;11、下列程厅执行后的输出结果是(A)。main()chararr24;strcpy(arr,you);strcpy(arr1,me);arr03=&;9printf(%sn,arr);(A)you&me(B)you(C)me(D)err12、标有/*/的语句的执行次数是(C)。inty,i;for(i=O;ipup.sex(C)(*p).pup.sex(D)(*p).sex18、若已定义了如下的共用体类型变量 x,则 x 所占用的内存字节数为()uniondata inti;c
17、harch;doublef;x;(A)7(B)11(C)8(D)1019、若有下面的说明和定义:structtest intm1;char m2;float m3;unionuuchar u15;int u22;ua;myaa;。10则 sizeof(struct test)的值是()。(A)12(B)16(C)14(D)920、若要打开:A 盘上 user 子目录下名为 abc.txt 的文本文件进行读、写操作,下面符合此要求的函数调用是(B)。(A)fopen(A:userabc.txt,r)(B)fopen(A:userabc.txt,r+)(C)fopen(A:userabc.txt,
18、rb)(D)fopen(A:userlabc.txt,w)第二部分:简单程序(12 题,共 30 分)21、以下程序的运行情况是()。main()int i=1,sum=0;while(i=85);caseB:caseC:printf(=60);caseD:printf(=85(B)=60(C)=6060error(D)error23.有如下程序main()int x=23;doprintf(%d,x-);while(!x);该程序的执行结果是()。(A)321(B)23(C)不输出任何内容(D)陷入死循环24.有如下程序int func(int a,int b)return(a+b);mai
19、n()intx=2,y=5,z=8,r;r=func(func(x,y),z);printf(%dn,r);该程序的输出结果是()。(A)12(B)13(C)14(D)151125.以下程序的输出结果是()。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)426.以下程序的输出结果是()。int a,b;voidfun()a=100;b=200;main()int a=5,b=7;fun();printf(%d%dn,a,b);(A)100200(B)57(C)
20、200100(D)7527.下面的程序执行后,文件 testt 中的内容是()#includevoid 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,);(A)hello,(B)new,worldhello(C)new,world28.以下程序的运行结果是()。#includemain()static chars30=abcdefg;sta
21、tic char t=abcd;int i,j;i=0;while(si!=0)i+;j=0;whi1e(tj!=0)si+j=tj;(D)hello,rld。12j+;si+j=0;printf(%sn,s);(A)abcdabcdefg(B)abcdefg(C)abcd(D)abcdefgabcd 29.有如下程序main()charch25=6937,8254,*p2;inti,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(
22、D)69382530.若已建立如下图所示的单向链表结构在该链表中,指针 p,s 分别指向图中所示结点,则不能将 s 所指的结点插入到链表末尾仍构成单向链表的语句组是()。(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.请选择正确的运行结果填入()中。includeint x,y;num()int a=15,b=10;int x,y;y=a-b;y=a+
23、b;return;main()inta=7,b=5;x=a+b;y=a-b;num();printf(%d,%dn,x,y);(A)12,2(B)5,25(C)2,12(D)不确定32.以下程序的输出结果是()。#defineM(x,y,z)x*y+zmain()13 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)第二卷含两大题,均属填空题,每题各有 5 个空栏,在阅读和理解原题程序的基础上,在空栏处填入适当的字符、语句,以构成一个正确的 C 语言程序。(2)每空栏填对得 3 分,两大题共 10 个
24、空栏,全对得 30 分。试题一:有一函数,实参传来一个字符串,统计此字符串中字母、数字、空各和其他字符的个数,在主函数中输入字符串以及输出上述的结果。intletter,digit,space,others;/*是全局变量*/main()int count(char _(1)_);char text80;printf(nlnput string:n);_(2)_;printf(string:);puts(text);letter=O;digit=O;space=O;others=O;_(3)_;printf(letter:%d,digit:%d,space:%d,other:%dn,lette
25、r,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 strcmp(char*p1,char*p2)设 p1 指向字符串 s1,p2 指向字符串 s2。要求:当 s1=s2 时,返回值为 0。当 sls2 时,返回它们两者的第一个不同的字符的 ASCII 码差值(如“BOY”与“
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 33 C语言程序设计试题及答案 语言程序设计 试题 答案
限制150内