您好,欢迎访问三七文档
当前位置:首页 > 高等教育 > 习题/试题 > 大学大一C语言程序设计期末考试试卷和答案
..四川师范大学计算机科学学院2012~2013学年度第二学期期末考试C语言程序设计试卷试卷A答卷说明:1、本试卷共6页,答题纸3页,4个大题,35个小题,满分100分,120分钟完卷。2、闭卷考试,所有的答案都必须写在答题纸上,判卷以答题纸上答案为准。3、本试卷适用于2011级1、2、3班。题号一二三四总分总分人分数得分评卷人一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题1分,共20分)1、在C语言中,下列标识符中合法的是()A).-intB).in1_3C).A_B!DD).const2、不属于C语言基本数据类型的是()A).intB).unionC).charD).unsigned3、下面是对宏定义的描述。不正确的是()A).宏不存在类型问题,宏名无类型,它的参数也无类型B).宏替换不占用运行时间C).宏替换只是字符串的简单替代D).宏替换时先检查类型,类型一致时才可以替换4、C语言中,″\\xfds″在内存中占用的字节数是()A).3B).4C).5D).65、设intx;则执行printf(″%x\n″,~x^x);的结果是()A).ffffffffB).ffC).0D).16、对于while语句,错误的说法是()A).用条件控制循环体的执行次数B).循环体至少要执行一次__________________学院__________级___________班姓名_______________学号_______________………………………………(密)………………………………(封)………………………………(线)………………………………密封线内答题无效..C).循环体有可能一次也不执行D).循环体中可以包含若干条语句7、执行下列语句后输出的结果是()inta=8,b=7,c=6;if(ab)if(bc){a=c;c=b;}printf(%d,%d,%d\n,a,b,c);A).6,7,7B).6,7,8C).8,7,6D).8,7,88、设inta=9,b=20;则printf(″%d,%d\n″,a--,--b);的输出结果是()A).9,19B).9,20C).10,19D).10,209、设staticcharx[]=″12345″,y[]={′1′,′2′,′3′,′4′,′5′,′\0′};那么()A).x数组的长度等于y数组的长度B).x数组的长度大于y数组的长度C).x数组的长度少于y数组的长度D).x数组与y数组的存储区域相同10、设inti,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是()for(i=0;i3;i++)printf(″%d″,x[i][2-i]);A).147B).159C).357D).36911、执行完下列语句后,n的值是()intn;for(n=0;n100;n=2*n+1);A).125B).126C).127D).12812、有以下语句:inta=6;a+=a-=a*a;printf(“%d”,a);输出结果()A).–132B).–60C).-24D).013、为了连接两个字符串s1与s2,应当使用()A).strcat(s1,s2)B).strcpy(s1,s2)C).strlen(s1,s2)D).strcmp(s1,s2)14、设inta,*p;则语句p=&a;中的运算符“&”的含义是()A).位与运算B).逻辑与运算C).取指针内容D).取变量地址15、下面输出的结果为()inta=13,b=64;printf(“%d\n”,!a||(b3));A).13B).64C).1D).016、下列定义正确的是()A).enumt={a,b}x;B).enumt{1,2}x;C).enum{′+′,′-′}x;D).enumt{a,b}x;..17、设有定义:structu{inta[4];floatb[3];charc[16];}aa;则printf(″%d\n″,sizeof(aa));的输出是()A).32B).36C).12D).818、数据-54.78在文本文件中占用的字节个数是()A).4B).5C).6D).819、在宏定义#definep(r)3.14*r中,请问宏名是()A).pB).p(r)C).3.14*rD).p(r)3.14*r20、要打开一个已存在的用于修改的非空二进制文件“hello.txt”,正确语句是()A).fp=fopen(hello.txt,r)B).fp=fopen(hello.txt,ab+)C).fp=fopen(hello.txt,w)D).fp=fopen(hello.txt,r+)得分评卷人二、填空题(仔细阅读每小题的说明和源代码,并将正确答案写到答题纸上对应的题号处。每小题4分,共36分)1.以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入.请填空.21:22:#includestdio.hintmain(intargc,char*argv[]){floatx,amax,amin;scanf(%f,&x);amax=x;amin=x;while(21){if(xamax)amax=x;if(22)amin=x;scanf(%f,&x);}printf(\namax=%f\namin=%f\n,amax,amin);return0;}__________________学院__________级___________班姓名_______________学号_______________………………………………(密)………………………………(封)………………………………(线)………………………………密封线内答题无效..2.下面程序的功能是比较字符数组a和字符数组b中的两个字符串是否相等(比较对应字符,全部相同输出0,如果不同,返回第一个不相同的字符差值,并输出)。23:24:3.就以下程序空缺的地方进行填空。4.以下程序对一个3×3的矩阵进行行列互换。25:26:27:#includestdio.hintmain(void){chara[100]=HelloWorld!;charb[100]=HelloChengdu!;23;/*完成对应字符的比较,并判定一个字符串是否结束了*/while(24){i++;}printf(%d\n,a[i]-b[i]);return0;}#includestdio.hintmain(intargc,char*argv[]){inti,j,temp;inta[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i3;i++)for(j=0;(27)i;j++)temp=a[i][j],(28),(29);printf(\ntheresultarrayis:\n);for(i=0;i3;i++){printf(\n);for(j=0;j3;j++)printf(%5d,a[i][j]);}return0;}#includestdio.h#includectype.hintmain(intargc,char*argv[]){charstr[81],*sptr;inti;for(i=0;i80;i++){str[i]=getchar();if(str[i]=='\n')break;}str[i]=(25);sptr=str;while(*sptr)putchar(26);return0;}..28:29:得分评卷人三、阅读下列程序,将输出结果写到答题纸上对应的题号处。(本大题共4小题,每小题5分,共20分)30题:#includestdio.hintfun(intx){inty=0;staticintz=3;z++;++y;return(x+y+z);}voidmain(){inti,x=2;for(i=0;i2;i++)printf(%5d,fun(x++));}31题:#includestdio.hintmain(void){charstr[100]=Iamapig.;char*p=&str[7];inti;for(i=0;str[i]!='\0';i++,p++){if(*p='a'&&*p'z')(*p)++;elseif(*p=='z')*p='a';}puts(str);return0;}33题:#includestdio.hintgcd(intm,intn){if(m==n)returnm;elseif(mn)returngcd(m-n,n);elsereturngcd(m,n-m);}voidmain(){printf(Gcd=%d\n,gcd(24,36));}32题:#includestdio.hinta1=300,a2=400;voidsub1(intx,inty){a1=x;x=y;y=a1;}voidmain(){inta3=100,a4=200;sub1(a3,a4);sub1(a1,a2);printf(%d,%d,%d,%d\n,a1,a2,a3,a4);}__________________学院__________级___________班姓名_______________学号_______________………………………………(密)………………………………(封)………………………………(线)………………………………密封线内答题无效..得分评卷人四、程序设计题,将源代码规范地书写在答题纸上(第34小题10分,第35小题各14分,共24分)。34.设计函数实现将一个字符串中小写字母转化为大写字母。35.计算!1!21!111ne的值并输出(设n=20)。四川师范大学计算机科学学院2012~2013学年度第二学期期末考试C语言程序设计试卷试卷A参考答案与评分标准一、单项选择题:(每小题1分,共20分)12345678910BBDDABCAAC11121314151617181920CBADCDBCAB二、填空题:(每空4分,共36分)21:x=022:xamin23:inti=024:(a[i]==b[i])&&a[i]!='\0'25:‘\0’26:*sptr++..27:ji28:a[i][j]=a[j][i]29:a[j][i]=temp三、阅读程序题:(每小题5分,共20分)30:7931:Iamaqjh.32:100,400,100,20033:Gcd=12四、程序设计题:(第34小题10分,第35小题各14分,共24分)34.设计函数实现将一个字符串中小写字母转化为大写字母。(10分)#includestdio.h(1分)#includectype.h(1分)/*转换函数4分,其中:循环正确1分,判断、转换正确各1分,其余1分*/voidConvert(char*str){while(*str!='\0'){if(islower(*str))*str=toupper(*str);str++;}}/*主函数4分,其中:变量定义初始化正确1分,函数调用正确2分,输出正确1分*/voidmain(){charstr[]=123123asadAsadMNer;Convert(str);printf(%s\n,str);}其它答案可根据情况酌情给分。35计算!1!211!111ne的值并输出(设n=20)。(14分)#includestdio.h(1分)/*递归函数5分*/longfactorial(intn)(1分){if(n==1)returnn;(2分)elsereturnn*factorial(n-1);(2分)..}/*主函数8分,其中:变量定义正确2分,循环正确得2分,函数调用格式正确2分,输出正确2分*/voidmain(){doublee=1.0;for(inti=1;i=2
本文标题:大学大一C语言程序设计期末考试试卷和答案
链接地址:https://www.777doc.com/doc-2083285 .html