《C语言》期末考试试题(A)_第1页
《C语言》期末考试试题(A)_第2页
《C语言》期末考试试题(A)_第3页
《C语言》期末考试试题(A)_第4页
《C语言》期末考试试题(A)_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

忻州师范学院计算机科学与技术系2005—2006学年第二学期《C语言》期末试题(A卷)(考试班级:2005本16班考试时间:110分钟)一、填空题(每空3分,共30分)1.若从键盘输入58,则以下程序输出的结果是__________。main(){inta;scanf("%d",&a);if(a>50)printf("%d",a);if(a>40)printf("%d",a);if(a>30)printf("%d",a);}2.以下程序的输出结果是__________。main(){inta=100;printf("%o\n",a);}3.以下程序的输出结果是__________。main(){inta=0a+=(a=8);printf("%d\n",a);}4.以下程序输出的结果是__________。main(){inta=5,b=4,c=3,d;d=(a>b>c);printf("%d\n",d);}5.以下定义的结构体类型拟包含两个成员,其中成员变量info用来存入整形数据;成员变量link是指向自身结构体的指针.请将定义补充完整。structnode{intinfo;__________link;}6.以下程序的输出结果是__________。main(){ints,i;for(s=0,i=1;i<3;i++,s+=i);printf("%d\n",s);}7.以下程序的输出结果是__________。main(){char*p="abcdefgh",*r;long*q;q=(long*)p;q++;r=(char*)q;printf("%s\n",r);}8.以下程序的输出结果是__________。main(){chars[]="abcdef";s[3]=’\0’;printf("%s\n",s);}9.以下程序的输出结果是__________。main(){inta=256;printf(“%x”,a);}10.设有如下宏定义#defineMYSWAP(z,x,y){z=x;x=y;y=z;}以下程序段通过宏调用实现变量a、b内容交换,请填空。floata=5,b=16,c;MYSWAP(__________,a,b);二、选择题((1)—(10)题每小题1分,(11)—(20)题每小题2分,(21)—(30)题每小题3分,共60分)1.若有定义:inta=8,b=5,c;,执行语句c=a/b+0.4;后,c的值为:A)1.4B)1C)2.0D)22.若变量a是int类型,并执行了语句:a=’A’+1.6;,则正确的叙述是:A)a的值是字符CB)a的值是浮点型C)不允许字符型和浮点型相加D)a的值是字符’A’的ASCII值加上1。3.以下程序段的输出结果是:inta=1234;printf("%2d\n",a);A)12B)34C)1234D)提示出错、无结果4.以下选项中不属于C语言的类型的是:A)signedshortimtB)unsignedlongintC)unsignedintD)longshort5.若有说明语句:inta,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是:A)scanf("%d%d%d",&a,&b,d);B)scanf("%d%d%d",&a,&b,&d);C)scanf("%d%d%d",a,b,d);D)scanf("%d%d%d",a,b,*d);6.以下叙述正确的是:A)可以把define和if定义为用户标识符B)可以把define定义为用户标识符,但不能把if定义为用户标识符C)可以把if定义为用户标识符,但不能把define定义为用户标识符D)define和if都不能定义为用户标识符7.若定义:inta=511,*b=&a;,则printf("%d\n",*b);的输出结果为:A)无确定值B)a的地址C)512D)5118.以下程序的输出结果是:main(){inta=5,b=4,c=6,d;printf("%d\n",d=a>b?(a>c?a:c):(b));}A)5B)4C)6D)不确定9.以下程序中,while循环的循环次数是:main(){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}......}A)1B)10C)6D)死循环,不能确定次数10.以下程序的输出结果是:main(){inta=0,i;for(i=0;i<5;i++){switch(i){case0:case3:a+=2;case1:case2:a+=3;default:a+=5;}}printf("%d\n",a);}A)41B)13C)10D)2011.以下程序的输出结果是:main(){inta=4,b=5,c=0,d;d=!a&&!b||!c;printf("%d\n",d);}A)1B)0C)非0的数D)-112.以下程序的输出结果是:#include"stdio.h"main(){inti=0,a=0;while(i<20){for(;;){if((i%10)==0)break;elsei--;}i+=11;a+=i;}printf("%d\n",a);}A)21B)32C)33D)1113.以下程序的输出结果是:charcchar(charch){if(ch>=‘A’&&ch<=‘Z’)ch=ch-‘A’+‘a’;returnch;}main(){chars[]="ABC+abc=defDEF",*p=s;while(*p){*p=cchar(*p);p++;}printf("%s\n",s);}A)abc+ABC=DEFdefB)abc+abc=defdefC)abcaABCDEFdefD)abcabcdefdef14.以下程序的输出结果是:intf(){staticinti=0;ints=1;s+=i;i++;returns;}main(){inti,a=0;for(i=0;i<5;i++)a+=f();printf("%d\n",a);}A)20B)24C)25D)1515.以下程序段的输出结果是:chars[]="\\141\141abc\t";printf("%d\n",strlen(s));A)9B)12C)13D)1416.以下程序的输出结果是:main(){charcf[3][5]={"AAAA","BBB","CC"};printf("\"%s\"\n",cf[1]);}A)"AAAA"B)"BBB"C)"BBBCC"D)"CC"17.在C语言中,形参的缺省存储类是:A)autoB)registerC)staticD)extern18.若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是:A)p=2*(int*)malloc(sizeof(int));B)p=(int*)malloc(2*sizeof(int));C)p=(int*)malloc(2*2);D)p=(int*)calloc(2,sizeof(int));19.以下程序的输出结果是:main(){charx=040;printf("%o\n",x<<1);}A)100B)80C)64D)3220.若要打开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")C)fopen("A:\\user\\abc.txt","w")21.以下不能正确进行字符串赋初值的语句是:A)charstr[5]="good!";B)charstr[]="good!";C)char*str="good!";D)charstr[5]={‘g',‘o',‘o',‘d'};22.若有下面的说明和定义:structtest{intml;charm2;floatm3;unionuu{charul[5];intu2[2];}ua;}myaa;则sizeof(structtest)的值是:A)12B)16C)14D)923.若有定义:intaa[8];。则以下表达式中不能代表数组元aa[1]的地址的是:A)&aa[0]+1B)&aa[1]C)&aa[0]++D)aa+124.若有以下定义和语句:ints[4][5],(*ps)[5];ps=s;则对s数组元素的正确引用形式是:A)ps+1B)*(ps+3)C)ps[0][2]D)*(ps+1)+325.以下程序的输出结果是:main(){intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=i;j<=i;j++)t=t+b[i][b[j][j]];printf("%d\n",t);}A)3B)4C)1D)926.以下程序的输出结果是:main(){charb1[8]="abcdefg",b2[8],*pb=b1+3;while(--pb>=b1)strcpy(b2,pb);printf("%d\n",strlen(b2));}A)8B)3C)1D)727.在说明语句:int*f();中,标识符f代表的是:A)一个用于指向整型数据的指针变量B)一个用于指向一维数组的行指针C)一个用于指向函数的指针变量D)一个返回值为指针型的函数名28.不合法的main函数命令行参数表示形式是:A)main(inta,char*c[])B)main(intarc,char**arv)C)main(intargc,char*argv)D)main(intargv,char*argc[])29.在C语言中,逻辑值"真"的表示方法是:A).trueB).大于0的数C).非零整数D).非0的数30.设有以下说明语句typedefstruct{intn;charch[8];}PER;则下面叙述中正确的是:A)PER是结构体变量名B)PER是结构体类型名C)typedefstruct是结构体类型D)struct是结构体类型名三、程序阅读填空题(每空2分,共10分)1.以下程序用来统计文件中字符个数。请填空。#include"stdio.h"main(){FILE*fp;longnum=0L;if((fp=fopen("fname.dat","r"))==NULL){pirntf("Openerror\n");exit(0);}while(【1】){fgetc(fp);num++;}printf("num=%1d\n",num-1);fclose(fp);}2.以下程序中,select函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标。请填空。#defineN3#defineM3select(inta[N][M],int*n){inti,j,row=1,colum=1;for(i=0;i<N;i++)for(j=0;j<M;j++)if

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论