C语言程序设计试题及答案 2.pdf
《C语言程序设计试题及答案 2.pdf》由会员分享,可在线阅读,更多相关《C语言程序设计试题及答案 2.pdf(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C 语言程序设计(卷)考核班级学生数印数考核方式闭卷 考核时间120 分钟(本试卷包括第一卷和第二卷,答卷时间总共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
2、;z=3;z=(xy)?z: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 语言标准库函数fr
3、ead(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(“%d t”,x,y);y=+x-1;printf(“%d n”,x,y);y=z-1;printf(“%d
4、t”,z,y);y=-z-1;printf(“%d n”,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()名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 37 页 -int i,j;char*a,c;a=”computer”;printf(“%s”,a);for(i=0,j=7;icomputer B.computer-retupmoc a3=u a5=m C.computer-retupmoc D.computer-retu
5、pmoc 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.下列程序main()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);pri
6、ntf(“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;名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 37 页 -main()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;pr
7、intf(“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 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 st
8、udent_n;char grade;struct student temp,*p=&temp;temp.name=”chou”;则下面不正确的是_。表达式值A.pname chou B.(*p)name+2 h C.*pname+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;名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 37 页 -printf(“SUM=%d”,sum);程序运行结果是:A.SUM=55
9、 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,2,0 C.3,7,9,11,0,6,7,5,4,2 D
10、.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+);运行后输出的数据为_。名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 37 页 -A.0 0 B.0 0 C.0 0 D.0 0 1 2 1 2 1 2 2 2 2
11、 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.”;static char s280;copy_string(s1,s2);printf(“%sn”,s2);copy_string(“123”,s2);printf(“%sn”,s2);运行后输出的数据为()。A.c_program 123 B.123 C.c_pr
12、ogram123 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)bj=ai;j+;+i;bj=0;printf(“%s”,b);运行后输出的结果是()。A.把键盘输入的字符串显示在屏幕上B.把键盘输入的字符串中的数字字符删掉,然后显示该字符串C.把键盘输入的字符串中的字符0 和 9 删掉,然后显示该字符串名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 37 页
13、 -D.只保留由键盘输入的字符串中的字母数字,然后显示该字符串32下列程序#include main()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.把键盘输入的字符串中的大写字母变换成小写字母,然后显示变换后的字符串。B.把键盘输入的字符串中的数字字符删除掉,然后显示该字符串。C.把键盘输入的字符串中的小写字母变换成大写字母,然后显示变换后的字符串。D.把键盘输入的字符串原封不动地显示在
14、屏幕上。第二卷说明:(1)第二卷含二大题,均属填空题,每题各有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+)
15、_ if(n100)_ if(n1+2&2|2*44-!0后,x 的值为()。(A)-l(B)O(C)1(D)5 6、以下变量x、y、z 均为 double 类型且已正确赋值,不能正确表示数学式子:(x)/(y z)的 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、假
16、定 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 的值是()。(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、下列程厅执行后的输出结果是()。main()char
17、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)(*p).sex 18、若已定义了如下的共用体类型变量x,则 x 所占用的内存字节数为()。union data int i;char ch;double f;x;(A)7(B)11(C)8(D)10 19、若有下面的说明和
18、定义:struct test int m1;char m2;float m3;union uu char u15;int u22;ua;myaa;名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 37 页 -则 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)f
19、open(A:userlabc.txt,w)第二部分:简单程序(12 题,共 30 分)21、以下程序的运行情况是()。main()int i=1,sum=0;while(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(
20、)int x=2,y=5,z=8,r;r=func(func(x,y),z);printf(%dn,r);该程序的输出结果是()。(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=100;b=200;main()int a=5,b=7;fun
21、();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,);(A)hello,(B)new,worldhello(C)new,world(D)hello,rld 28.
22、以下程序的运行结果是()。#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+;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
23、;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 所指的结点插入到链表末尾仍构成单向链表的语句组是()。(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
24、).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;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)1
25、9(B)17(C)15(D)12 第二卷说明:(1)第二卷含两大题,均属填空题,每题各有5 个空栏,在阅读和理解原题程序的基础上,在空栏处填入适当的字符、语句,以构成一个正确的C 语言程序。(2)每空栏填对得3 分,两大题共10 个空栏,全对得30 分。试题一:有一函数,实参传来一个字符串,统计此字符串中字母、数字、空各和其他字符的个数,在主函数中输入字符串以及输出上述的结果。int letter,digit,space,others;/*是全局变量*/main()int count(char _(1)_);char text80;printf(nlnput string:n);_(2)_;p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计试题及答案 2022 语言程序设计 试题 答案
限制150内