c语言程序设计试题及答案

c语言程序设计试题及答案

ID:1354930

大小:207.00 KB

页数:38页

时间:2017-11-10

上传者:xinshengwencai
c语言程序设计试题及答案_第1页
c语言程序设计试题及答案_第2页
c语言程序设计试题及答案_第3页
c语言程序设计试题及答案_第4页
c语言程序设计试题及答案_第5页
资源描述:

《c语言程序设计试题及答案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

《C语言程序设计》(卷)考核班级学生数印数考核方式闭卷考核时间120分钟(本试卷包括第一卷和第二卷,答卷时间总共120分钟)第一卷第一部分:基础知识(20项,共40分)1.一个C语言程序是由(c)组成的。A.主程序B.子程序C.函数D.过程2.转换说明符%x的输出形式是(BC)。A.十进制B.八进制C.十六进制D.二进制3.若a、b均为int型变量,且a=100,则关于循环语句for(b=100;a!=b;++a,++b)printf(“------------“);的正确说法是(C)。A.循环体只执行一次B.死循环C.循环体一次也不执行D.输出-----------4.若x、y、z均为int型变量,则执行下列语句后的z值为(A)。x=1;y=2;z=3;z=(x>y)?z:y;z=(z=1;n--),下列语句实现将S2所指字符数组中前n个字符复制到S1所指字符数组中,其中代码不正确的是(D)。A.*S1++=*S2++B.S1[n-1]=S2[n-1]C.*(S1+n-1)=*(S2+n-1)D.*(++S1)=*(++S2)17.调用函数的实参与被调用函数的形参应该有如下关系(CD)。A.只要求实参和形参个数相等B.只要求形参和实参顺序相同C.只要求实参和形参数据类型相同D.上述三点均需具备18.联合体成员的数据类型(B)。A.相同B.可以不同也可以相同C.长度一样D.是结构体变量19.由系统分配和控制的标准输出文件为(D)。A.键盘B.磁盘C.打印机D.显示器20.C语言标准库函数fread(fd,buffer,n)的功能是(A)。A.从文件fd中读取长度不超过n个字节的数据送入buffer指向的内存区域B.从文件fd中读取长度不超过n-1个字节的数据送入buffer指向的内存区域C.从文件fd中读取长度不超过n个字符送入buffer指向的内存区域D.从文件fd中读取长度不超过n-1个字符送入buffer指向的内存区域一.基础知识(20项,共40分)1.C2.C3.C4.A5.D6.B7.B8.B9.C10.A11.C12.B13.B14.D15.A16.D17.D18.B19.D20.A第二部分:简单程序(12项,共30分)21.下列程序main(){intx,y,z;x=y=2;z=3;y=z++-1;printf(“%dt%dt”,x,y);y=++x-1;printf(“%dt%d ”,x,y);y=z---1;printf(“%dt%dt”,z,y);y=--z-1;printf(“%dt%d ”,z,y);}运行后输出的数据为¬¬¬_C_。 A.3142B.3133C.2232D.2132241324223321131222.下列程序main(){inti,j;char*a,c;a=”computer”;printf(“%s”,a);for(i=0,j=7;i%s ”,a);c=a[j-1,i=2+j];printf(“a[%d]=%c ”,i,c);}运行后输出的数据为___.A.computer->computerB.computer->retupmoca[3]=ua[5]=mC.computer->retupmocD.computer->retupmoca[4]=pa[2]=t23.下列程序intsum(intn){intp=1,s=0,i;for(i=1;i<=n;i++)s+=(p*=i);returns;}main(){printf(“sum(5)=%d ”,sum(5));}运行后输出的数据为____A.sum(5)=151B.sum(5)=152C.sum(5)=153Dsum(5)=15524.下列程序main(){staticinta[]={5,6,7,3,2,9};ints1,s2,i,*ptr;s1=s2=0;ptr=&a[0];for(i=0;i<5;i+2=2){s1+=*(ptr+i);s2+=*(ptr+i+1);}printf(“s1=%d,s2=%d ”,s1,s2);} 运行后输出的数据为_____A.s1=18,s2=14B.s1=14,s2=32C.s1=14,s2=18D.s1=15,s2=1925.下列程序intc=1;main(){staticinta=5;intb=6;printf(“a=%db=%dc=%d ”,a,b,c);func();printf(“a=%d,b=%d,c=%d ”,a,b,c);func();}func(){staticinta=4;intb=10;a+=2;c+=10;b+=c;printf((“a=%d,b=%d,c=%d ”,a,b,c);}运行后输出的数据为____.A.a=5b=6c=1B.a=5b=6c=1a=6b=21c=11a=7b=17c=11a=5b=6c=11a=5b=6c=11a=8b=31c=21a=9b=17c=21C.a=5b=6c=1D.a=5b=6c=1a=6b=21c=11a=7b=17c=11a=6b=21c=11a=7b=17c=11a=8b=31c=21a=9b=38c=2126.已知structstudent{char﹡name;intstudent_n;chargrade;};structstudenttemp,*p=&temp;temp.name=”chou”;则下面不正确的是_______。表达式值A.p→namechouB.(*p)→name+2hC.*p→name+2eD.*(p→name+2)o27.下列程序#defineMAX10main() {inti,sum,a[]={1,2,3,4,5,6,7,8,9,10};sum=1;for(i=0;imain(){chara[40],b[40];inti,j;printf(“Enterthestring:”);scanf(“%s”,a);i=j=0;while(a[i]!=’’){if(!(a[i]>=’’&&a[i]<=’9’)){b[j]=a[i];j++;}++i;}b[j]=’’;printf(“%s”,b);} 运行后输出的结果是()。A.把键盘输入的字符串显示在屏幕上B.把键盘输入的字符串中的数字字符删掉,然后显示该字符串C.把键盘输入的字符串中的字符0和9删掉,然后显示该字符串D.只保留由键盘输入的字符串中的字母数字,然后显示该字符串32.下列程序#includemain(){chara[80];inti,j;printf(“Enterthestring:”);scanf(“%s”,a);i=0;while(a[i]!=’’){if(a[i]>=’A’&&a[i]<=’Z’)a[i]=a[i]-‘A’+’a’;}printf(“%s”,a);}运行后输出的结果是()。A.把键盘输入的字符串中的大写字母变换成小写字母,然后显示变换后的字符串。B.把键盘输入的字符串中的数字字符删除掉,然后显示该字符串。C.把键盘输入的字符串中的小写字母变换成大写字母,然后显示变换后的字符串。D.把键盘输入的字符串原封不动地显示在屏幕上。第二卷说明:(1)第二卷含二大题,均属填空题,每题各有5个空栏,在阅读和理解原题程序的基础上,在空栏处填入适当的字符、语句,以构成一个正确的C语言程序。(2)每空栏填对得3分,两大题共10个空栏,全填对得30分。试题一一个整数称为完全平方数,是指它的值是另一个整数的平方。如81是个完全平方数,因为它是9的平方。下列程序是在三位的正整数中寻找符合下列条件的整数:它既是完全平方数,且三位数字中又有两位数字相同:例如144(12*12)、676(26*26)等,从程序中找出并输出所有满足上述条件的三位数。程序如下:main(){intn,k,a,b,c;for(k=1;;k++){__n=k*k______if(n<100)__continue____试题一:①n=k*k②continue③break④n%100/10或(n-100*a)/10或n/10-(n/100)*10⑤intx,inty,intz if(n<999)_break__a=n/100;b=_____④_____c=n%10,if(flag(a,b,c))printf(“n=%d=%d*%d ”,n,k,k);}}flag_____⑤_____{return(!(x-y)*(x-z)*(y-z));}试题二以下程序所列函数replace(char*s1,char*s2,charstr1,char*str2)的功能是将已知字符串s1中的所有与字符串str1相同的子串替换成字符串str2,并将替换后所生成的新的字符串存于字符数组s2中。说明:生成字符串s2的过程是一个循环,顺序访问字符串s1的每个字符;当从某个字符开始不能构成与str1相同的子字符时,就把该字符拷贝到数组s2,当从某个字符开始能构成一个与str1相同的子字符串时,就将字符串str2的各字符拷贝到字符数组s2,并继续访问字符串s1中那个子串之后的字符,直至字符串s1被访问完毕,字符复制即告结束。下列程序运行的结果是输出:ABCXYZdefgabABCXYZdabab程序如下:replace(char*s1,char*s2,char*str1,char*str2){char*t0,*t1,*t2;while(⑥){for(t0=s1,t1=str1;*t1!=’’&&⑦;t0++,t1++);if(*t1!=’’)*s2++=⑧;else{for(t1=str2;*t1!=’’;)*s2++=⑨;⑩;}}*s2=’’;}⑨*t1++⑩s1=t0或s1=s1+strlen(str1)main(){chars1[]=”abcdefgababcdabab.”;chars2[80];replace(s1,s2,”abc”,”ABCXYZ”);printf(“%s ”,s2);}参考答案第一卷第二卷试题二: ⑥*s1或s1!=’’⑦*t0==*t1或*t1==*t0⑧*s1++ 《C语言程序设计》(卷)考核班级学生数印数考核方式闭卷考核时间120分钟(本试卷包括第一卷和第二卷,答卷时间总共120分钟)第一卷说明:(1)第一卷全部为选择题,每题可供选择的答案中,只有一个正确答案。(2)答本卷的题目时,要在标准答题纸上编号对应的栏口中,用铅笔将正确答案涂黑。在试题上直接勾划不得分。(3)本卷共分70分,其中第1—26题每题2分,第27—32题每题3分。第一部分:基础知识(20题,共40分)1、一个C语言的源程序中,()。(A)必须有一个主函数(B)可以有多个主函数(C)必须有主函数和其他函数(D)可以没有主函数2、下列数据中,为字符串常量的是()。(A)‘A’(B)“house”(C)Howdoyoudo.(D)’$abc’3、若有定义:inta=8,b=5,c;,执行语句c=a/b十0.4;后,c的值为()。(A)1.4(B)1(C)2.0(D)24、设有intx=11;则表达式(x++*l/3)的值为()。(A)3(B)4(C)11(D)125、执行x=5>1+2&&2||2*4<4-!0后,x的值为()。(A)-l(B)O(C)1(D)56、以下变量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/z7、设有以下说明语句structex{intx;floaty;charz;}example;则下面的叙述不正确的是()。(A)struct是结构体类型的关键字(B)example是结构体类型名(C)x,y,z都是结构体成员名(D)structex是结构体类型8、假定w、x、y、z、m均为int型变量;有如下程序段:w=1;x=2;y=3;z=4;m=(wpup.sex(C)(*p).pup.sex(D)(*p).sex18、若已定义了如下的共用体类型变量x,则x所占用的内存字节数为()。uniondata{inti;charch;doublef;}x;(A)7(B)11(C)8(D)1019、若有下面的说明和定义:structtest{intm1;charm2;floatm3;unionuu{charu1[5];intu2[2];}ua;}myaa; 则sizeof(structtest)的值是()。(A)12(B)16(C)14(D)920、若要打开:A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是()。(A)fopen("A:\user\abc.txt","r")(B)fopen("A:\user\abc.txt","r+")(C)fopen("A:\user\abc.txt","rb")(D)fopen("A:\userl\abc.txt","w")第二部分:简单程序(12题,共30分)21、以下程序的运行情况是()。main(){inti=1,sum=0;while(i<10)sum=sum+1;i++;printf("i=%d,sum=%d",i,sum);}(A)i=10,sum=9(B)i=9,sum=9(C)i=2,sum=l(D)运行出现错误22、若输入B,以下程序的运行结果为()。main(){chargrade;scanf("%c",&grade);switch(grade){case'A':printf(">=85");case'B':case'C':printf(">=60");case'D':printf("<60");default:printf("error");}}(A)>=85(B)>=60(C)>=60<60error(D)error23.有如下程序main(){intx=23;do{printf("%d",x--);}while(!x);}该程序的执行结果是()。(A)321(B)23(C)不输出任何内容(D)陷入死循环24.有如下程序intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf("%d ",r);}该程序的输出结果是()。(A)12(B)13(C)14(D)15 25.以下程序的输出结果是()。main(){inta,b;for(a=1,b=1;a<=100;a++){if(b>=10)break;if(b%3==1){b+=3;continue;}}printf("%d ",a);}(A)101(B)6(C)5(D)426.以下程序的输出结果是()。inta,b;voidfun(){a=100;b=200;}main(){inta=5,b=7;fun();printf("%d%d ",a,b);}(A)100200(B)57(C)200100(D)7527.下面的程序执行后,文件test.t中的内容是()。#includevoidfun(char*fname,char*st){FILE*myf;inti;myf=fopen(fname,"w");for(i=0;imain(){staticchars[30]="abcdefg";staticchart[]="abcd";inti,j;i=0;while(s[i]!='')i++;j=0;whi1e(t[j]!=''){s[i+j]=t[j]; j++;}s[i+j]='';printf("%s ",s);}(A)abcdabcdefg(B)abcdefg(C)abcd(D)abcdefgabcd29.有如下程序main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'';j+=2)s=10*s+p[i][j]-'0';printf("%d ",s);}该程序的输出结果是()。(A)69825(B)63825(C)6385(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.请选择正确的运行结果填入()中。includeintx,y;num(){inta=15,b=10;intx,y;y=a-b;y=a+b;return;}main(){inta=7,b=5;x=a+b;y=a-b;num();printf("%d,%d ",x,y);}(A)12,2(B)5,25(C)2,12(D)不确定32.以下程序的输出结果是()。 #defineM(x,y,z)x*y+zmain(){inta=1,b=2,c=3;printf("%d ",M(a+b,b+c,c+a));}(A)19(B)17(C)15(D)12第二卷说明:(1)第二卷含两大题,均属填空题,每题各有5个空栏,在阅读和理解原题程序的基础上,在空栏处填入适当的字符、语句,以构成一个正确的C语言程序。(2)每空栏填对得3分,两大题共10个空栏,全对得30分。试题一:有一函数,实参传来一个字符串,统计此字符串中字母、数字、空各和其他字符的个数,在主函数中输入字符串以及输出上述的结果。intletter,digit,space,others;/*是全局变量*/main(){intcount(char_____(1)_____);chartext[80];printf(" lnputstring: ");____(2)___;printf("string:");puts(text);letter=O;digit=O;space=O;others=O;_____(3)_____;printf("letter:%d,digit:%d,space:%d,other:%d ",letter,digit,space,others);}intcount(charstr[]){inti;for(i=O;str[i]!='';i++)if((____(4)____>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))letter++;elseif(str[i]>='0'&&str[i]<='9')digit++;elseif(str[i]=='')space++;else____(5)____;}试题二:把下列程序补充完整,实现两个字符串的比较,即自己写个strcmp函数,函数原型为:intstrcmp(char*p1,char*p2) 设p1指向字符串s1,p2指向字符串s2。要求:当s1=s2时,返回值为0。当sl<>s2时,返回它们两者的第一个不同的字符的ASCII码差值(如“BOY”与“BAD”,第二个字母不同,“O”与“A”之差为79-65=14);如果s1>s2,则输出正值;如果sl5)printf(“%d ”,m);elseprintf(“%d ”,m--);}A、7B、6C、5D、4 23、当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为____if(amain(){FILE*fout;charch;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{unsignedintn;unsignedcharc;}ul;ul.c=’A’;printf(“%c ”,ul.n);}A、产生语法错B、随机值C、AD、6526、有以下程序,执行后输出结果是_____main(){intm[][3]={1,4,7,2,5,8,3,6,9};inti,k=2;for(i=0;i<3;i++)printf(“%d”,m[k][i]); }A、456B、258C、369D、78927、以下程序运行后,输出结果是_______intfunc(inta,intb){staticintm=0,i=2;i+=m+1;m=i+a+b;return(m);}main(){intk=4,m=1,n;n=func(k,m);printf(“%d,”,n);n=func(k,m);printf(“%d”,n);}A、8,15B、8,16C、8,17D、8,828、在执行以程序时,如果从键盘上输入:ABCdef,则输出结果为:____#includemain(){charch;while((ch=getchar())!=’ ’){if(ch>=’A’&&ch<=’Z’)ch=ch+32;elseif(ch>=’a’&&ch<=’z’)ch=ch-32;printf(“%c”,ch);}printf(“ ”);}A、ABCdefB、abcDEFC、abcD、DEF29、有以下程序,执行后输出结果是____int*f(int*x,int*y){if(*x<*y)returnx;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf(“%d,%d,%d ”,*p,*q,*r); }A、7,8,8B、7,8,7C、8,7,7D、8,7,830、下面程序的输出结果是_____fun(char*s,intp1,intp2){charc;while(p1longfunc(intx){longp;if(x==0||x==1)return(2);p=x*func(x-1);return(p);}main(){printf(“%d ”,func(4));}A、8B、12C、24D、4832、下面的程序运行后,全局量t.x和t.s的正确结果为__________structtree{intx;char*s;}t;func(structtreet){t.x=10;t.s=”computer”;return(0);}main() {t.x=1;t.s=”minicomputer”;func(t);printf(“%d,%s”,t.x,t.s);}A、10,computerB、1,computerC、1,minicomputerD、10,minicomputer第二卷说明:(1)第二卷均为填空题,在阅读和理解原题程序的基础上,在空栏处填入适当的字符、语句以构成一个正确的C语言程序。(2)答本卷的题目时,要在本卷答题纸上编号对应的栏目中,用钢笔或圆珠笔书写。用铅笔答题无效,在试题上直接答题者无效。请勿在第一卷的答题卡上填写本卷答案。(3)每空栏3分,共10个空栏,共30分。试题一下列程序是求1+1/2+1/4+……+1/50的值。#include“stdio.h”main(){inti=2;floatsum=1;while(___(1)_____){sum=sum+1.0/i;_____(2)_______;}printf(“sum=%f”,sum);}试题二下列函数用于统计一行字符中的单词个数,单词之间用空格分隔。word_num(charstr[]){inti,num=0,word=0;for(i=0;str[i]!=____(3)___;i++)if(____(4)______==’‘)word=0;elseif(word==0){word=1;______(5)______;}return(num);}试题三以下函数的功能是删除字符串s中的所有数字字符。voiddele(char*s){intn=0,i;for(i=0;s[i];i++) if(____(6)_____)s[n++]=s[i];s[n]=____(7)_____;}试题四以下程序的功能是:从键盘输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。main(){floatx[1000],sum=0.0,ave,a;intn=0,i;printf(“Entermark: ”);scanf(“%f”,&a);while(a>=0.0&&n<1000){sum=____(8)____;x[n]=___(9)_____;n++;scanf("%f",&a);}ave=sum/n;printf(“Output: ”);printf(“ave=%f ”,ave);for(i=0;i='0'&&s[i]<='9')7、''8、sum+a9、a10、(x[i]n,则该结点没有()。A)左子结点B)右子结点C)左子结点和右子结点D)左子结点、右子结点和兄弟结点(4)快速排序算法的平均时间复杂度为()。A)O(n)B)O(n2)C)O(nlog2n)D)O(log2n!)(5)在面向对象的程序设计方法中,描述对象静态和动态特征的三要素是()。A)封装、继承和重载B)属性、事件和方法C)数据、代码和接口D)内聚、耦合和驱动(6)软件测试的目的是()。A)证明软件的正确性B)找出软件系统中存在的所有错误C)证明软件系统中存在错误D)尽可能多地发现软件系统中的错误(7)软件开发范型的作用是()。A)为了控制软件需求的易变性B)作为一种软件工程方法学C)作为一种项目管理方法D)作为需求分析的指导(8)在数据库三级模式结构中,描述数据库中全体数据的全局逻辑结构和特征的是()。A)外模式B)内模式C)存储模式D)模式(9)在数据库技术中,面向对象数据模型是一种()。A)概念模型B)结构模型C)物理模型D)逻辑模型(10)数据库(DB)、数据库系统(DBS)、数据库管理系统(DBMS)三者之间的关系是()。A)DBS包括DB和DBMSB)DBMS包括DB和DBSC)DB包括DBS和DBMSD)DBS就是DB,也就是DBMS(11)阅读以下程序main(){intx;scanf(”%d”,&x);if(x--<5)printf(”%d ”,x);elseprinff(”%d ”,x++);}程序运行后,如果从键盘上输入5,则输出结果是()。A)3B)4C)5D)6(12)假定W,X,Y,z和m均为int型变量,有如下程序段: w=1;x=2;y=3;z:4;m=(w=0;i--)a[i]=10-i:printf("%d%d%d",a[2],a[5],a[8]);}A)258B)741C)852D)369(25)以下数组定义中不正确的是()。A)inta[2][3];B)intb[][3]={0,1,2,3};C)intc[100][100]={0};D)intd[3][]={{1,2},{1,2,3},{1,2,3,4}};(26)以下程序的输出结果是()。main(){inta[4][4]={{l,3,5},{2,4,6},{3,5,7}};prinff("%d%d%d%d ",a[0][3],a[1][2],a[2][1],a[3][0]);}A)0650B)1470C)5430D)输出值不确(27)以下程序的输出结果是()。#includemain(){charst[20]="hellot’\";printf("%d%d ",stden(st,sizeof(st));}A)99B)520C)1320D)2020(28)以下程序的输出结果是()。amovep(int*p,int(*a)[3],intn){inti,j;for(i=0;ix,(h[1].p)->y);}A)12B)23C)14D)32(30)以下程序的输出结果是()。main(){inta,b;for(a=l,b=l;a<=100;a++){if(b>=10)break;if(b%3==1){b+=3;continue;}}printf("%d ",a);}A)101B)6C)5D)4(31)以下程序的输出结果是()。unionmyun{struct{intx,y,z;}u;intk;}a;main(){a.u.x=4;a.u.y=5;a.u.z=6;a.k=0;printf("%d ",a.u.x);}A)4B)5C)6D)0(32)以下程序的输出结果是()。inta,b;voidfun(){a=100;b=200;} main(){inta=5,b=7;fun();printf("%d%d ",a,b);}A)100200B)57C)200100D)75(33)以下程序的输出结果是()。#defineM(x,y,z)x*y+zmain(){inta=l,b=2,c=3;printf("%d ",M(a+b,b+c,c+a));}A)19B)17C)15D)12(34)整型变量X和Y的值相等,且为非0值,则以下选项中,结果为0的表达式是()。A)x||yB)x|yC)x&yD)x^y(35)下面的程序执行后,文件test.t中的内容是()。#include#includevoidfun(char*fname,char*st){FILE*myf;inti;myf=fopen(fname,"w");for(i=0;i='a')||(c<='z')C)('a'<=c)and('z'>=c)D)(c>='a')&&(c<='z')(14)以下所列的各函数首部中,正确的是()。A)voidplay(vara:Integervarb:Integer)B)voidplay(inta,b)C)voidplay(inta,intb)D)subplay(aasintegerbasinteger)(15)以下程序的输出结果是()。A)0B)29C)31D)无定值fun(intxinty,intz){z=x*x+y*y;}main(){inta=31;fun(5,2,a);printf("%d",a);}(16)下列程序段的输出结果是()A)2l43B)1212c)1234D)2112voidfun(int*x,int*y){printf("%d%d",*x,*y);*x=3;*y=4;}main(){intx=1,y=2;fun(&y,&x);printf("%d%d",x,y);}(17)下列程序的输出结果是()。A)非法B)a[4]的地址C)5D)3main(){chara[10]={9,8,7,6,5,4,3,2,1,0},*p,a+5;printf("%d",*--p);}(18)下列程序的运行结果是()。A)63B)36C)编译出错D)00voidfun(int*a,int*b){int*k;k=a;a=b;b=k;}main(){inta=3,b=6,*x=&a,*y=&b;fun(x,y);printf("%d%d",a,b);}(19)下面程序的输出结果是()。A)0B)1C)10D)9main(){inta[]={1,2,3,4,5,6,7,8,9,0},*p;p=a; printf("%d ",*p+9);}(20)当调用函数时,实参是一个数组名,则向函数传送的是()。A)数组的长度B)数组首地址C)数组每一个元素的地址D)数组每个元素的值(21)设有以下说明语句:structex{intx;floaty;charz;}example;则下面的叙述中不正确的是()。A)struct是结构体类型的关键字B)example是结构体类型名C)x,y,z都是结构体成员名D)structex是结构体类型名(22)以下只有在使用时才为该类型变量分配内存的存储类说明是()。A)auto和staticB)auto和registerC)register和staticD)extern和register(23)若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是。A)EOFB)-1C)非零值D)NULL(24)以下程序的输出结果是()。A)20B)21C)22D)23main(){inti,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+1)];for(i=0;i<3;i++)k+=p[i]*2;printf("%d ",k);}(25)以下程序的输出结果是()。A)1,5,9,B)1,4,7,C)3,5,7,D)3,6,9,main(){inti,x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d,",x[i][2-i]);}(26)以下程序的输出结果是()。A)14B)19C)20D)21main(){inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=l;i<3;i++)for(j=0;j0)printf("%s",argv[argc]);printf(" ");}(30)以下程序的输出结果是()。A)1B)2C)3D)4longfun(intn){longs;if(n==1||n==2)s=2;elses=n-fun(n-1);returns:}main(){printf("%ld ",fun(3));}(31)以下程序的输出结果是()。A)16B)2C)9D)1#defineSQR(X)X*Xmain(){inta=16,k=2,m=l;a/=SQR(k+m)/SQR(k+m);printf("%d ",a);}(32)若定义了以下函数:voidf(……){……*p=(double*)malloc(10*sizeof(double));}p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调函数,则形参p的正确定以应当是()。 A)double*pB)float**pC)double**PD)float*p(33)以下程序的输出结果是()。A)10B)11C)51D)60structst{intx;int*y;}*p;intdt[4]={10,20,30,40};structstaa[4]={50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0]};main(){p=aa;printf("%d ",++(p->x));}(34)假定建立了以下链表结构,指针p和q分别指向如图所示的结点,则以下可以将q所从链表中删除并释放该结点的语句组是()。A)free(q);p->next=q->next;B)(*p).next=(*q).next;free(q);C)q=(*q).next;(*p).next=q;free(q);D)q=q->next;p->next=q;p=p->next;free(p);datanexthead……↑p↑q(35)以下程序的输出结果是()。A)0B)1C)2D)3main(){intx=05;charz='a';printf("%d ",(x&1)&&(z<'Z'));}二、填空题(每空2分,共30分)请将每一个空的正确答案写在答题卡[1]至[15]序号的横线上,答在试卷上不得分。(1)算法是求解某个问题所用的一系列操作规则的精确描述。一个算法必须具有[l]、确定性、可行性和输入输出。(2)用一维数组表示线性表L=(a1,a2,……an),假定向表中插入任一元素的概率相同(都为1/n),则插入一个元素平均需移动的元素个数为[2]。(3)结构化程序设计使用顺序、选择和循环三种基本控制结构,它们的共同特点是[3]。(4)数据模型有概念数据模型和结构数据模型两类。实体联系模型(E—R模型)属于[4]数据模型。(5)关系数据库的规范化理论要求关系数据库中的关系必须满足起码的要求,即每个属性都是[5]的。(6)下列程序的输出结果是[6]。main(){inta=l,b=2;a=a+b;b=a-b;a=a-b;printf("%d%d ",a,b);} (7)用以下语句调用库函数malloc使字符指针st指向具有11个字节的动态存储空间,请填空。st=(char*)[7];(8)下列程序段的输出结果是[8]。intn='c';switch(n++){default:printf("error");break;case'a':case'A':case'b':case'B':printf("good");break;case'c':case'C':printf("pass");case'd':case'D':printf("warn");}(9)下程序的输出结果是[9]。voidfun(int*n){while((*n)--);printf("%d",++(*n));}main(){inta=100;fun(&a);}(10)以下程序用来输出结构体变量ex所占存储单元的字节数,请填空。structst{charname[20];doublescore;};main(){structst,ex;printf("exsize:%d ",sezeof([10]);}(11)下面程序把从终端读入的文本(用@作为文本结束标志)输出到一个名为bi.dat的新文件中。请填空。#include"sidio.h"FILE*fp;main(){charch;if(fp=fopen([l1]))==NULL)exit(0);while((ch=getchar())!='@')fputc(ch,fp);fclose(fp);}(12)若变量n中的值为24,则prnt函数共输出[l2]行,最后一行有[l3]个数。voidprnt(intn,intaa[]){inti;for(i=l;i<=n;i++){printf("%6d",aa[i]);if(!(i%5))printf(" ");} printf(" ");}(13)以下程序中,主函数调用了LineMax函数,以实现在N行M列的二维数组中找出每一行上的最大值。请填空。#defineN3#defineM4voidLineMax(intx[N][M]){inti,j,p;for(i=0;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭