2012年C语言考试题库精选及答案【免费】

申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

文档介绍

2012年C语言考试题库精选及答案【免费】

2012年C语言试题与答案精选第一套一、单选1以下程序段char*alp[]={"ABC","DEF","GHI"};intj;puts(alp[1]);的输出结果是(D)。A、DB、AC、BD、DEF2下列表达式中,可作为C合法表达式的是()。DA、3.0%2B、3=2=1=0C、[3,2,1,0]D、(3,2,1,0)3下列表达式中,可作为C合法表达式的是()。AA、3.0%2B、3=2=1=0C、[3,2,1,0]D、(3,2,1,0)4当x为偶数或奇数时(0除外),其值都为0的表达式是:()CA、(x/2*2-x)==0B、x%2==0C、!x!=0D、!(x%2)5下列运算符优先级最低的是().AA、=B、+C、!D、&&6设有如下程序段:intk=10;while(k==0)k--;则下述说明中正确的是().AA、循环体一次也不执行B、循环体执行一次C、死循环D、循环体执行10次7从循环体内某一层跳出,继续执行循环外的语句是()。CA、continue语句B、空语句C、break语句n2012年C语言试题与答案精选D、return语句8以下对一维整型数组a的正确说明是()。DA、inta(10);B、intn;scanf("%d",&n);inta[n];C、intn=10,a[n];D、#defineSIZE10(换行)inta[SIZE];9以下定义语句中,错误的是()。AA、intn=5,a[n];B、inta[]={1,2};C、chars[10]="test";D、char*a[3];10下面叙述中不正确的是().CA、可以对字符型数组进行整体输入和输出.B、不可以对浮点型数组进行整体输入和输出.C、可以对整型数组进行整体输入和输出.D、字符型数组可以存放字符串.11下面叙述中不正确的是().CA、可以对字符型数组进行整体输入和输出.B、不可以对浮点型数组进行整体输入和输出.C、可以对整型数组进行整体输入和输出.D、字符型数组可以存放字符串.12以下错误的描述是:函数调用可以()。DA、出现在执行语句中B、做为一个函数的实参C、出现在一个表达式中D、做为一个函数的形参13以下不正确的说法是:C语言规定()。CA、实参可以是常量,变量或表达式B、实参可以为任何类型C、形参可以是常量,变量或表达式D、形参应与其对应的实参类型一致14下列形式,不属于编译预处理命令的是().DA、#ifdefMB、#undefMC、#if(M>1)D、while(M>1)15下面判断正确的是()。DA、charc[4]="abc",d[4]="abc";等价于charc[4]=d[4]="abc";B、charstr[10]={"china"};等价于charstr[10];str[]={"china"};C、char*a="china";等价于char*a;*a="china";D、char*s="china";等价于char*s;s="china";16若有以下结构体定义:structexample{intx;n2012年C语言试题与答案精选inty;}v2;则(D)是正确的引用或定义.A、example.x=10;B、structv2;v2.x=10;C、examplev2;v2.x=10;D、structexamplev2={10,3};17若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为()。DA、-1B、1C、一个非0值D、0二、判断1如果有一个字符串,其中第十个字符为'n',则此字符串的有效字符为9个。【N】2格式字符%o用来以十六进制形式输出整数.【N】3已知a=3,b=4,c=5,则逻辑表达式!(a>b)&&!c||1的值为1.【Y】4已知x=2,y=2,执行分支语句if(x==y)y=1;elsey=-1;后,y=-1.【N】5continue语句对于while和do-while循环来说,意味着转去计算While表达式.【Y】6在do-while循环中,根据情况可以省略while.【N】7对于字符数为n个的字符串,其占用的内存为n+1个字节空间.【Y】8puts函数用来输出一个字符.【N】9引用数组元素时,下标可以是整型表达式或整型常量.【Y】10函数调用结束后,静态局部变量所占用的空间被释放.【N】11在一个函数中定义的静态局部变量可以被另一个函数调用.【N】12当全局变量与局部变量同名时,在局部变量的作用域范围之内,全局变量起作用.【N】13计算机编译系统对宏定义在编译时进行语法检查.【N】14若定义intarray[5],*p;则赋值语句p=array;是正确的.【Y】15共同体变量所占的内存长度等于最长的成员的长度。【Y】16C语言中,打开一个文件就意味着产生了一个文件.【N】三、填空1设x的值为15,n的值为2,则表达式x%=(n+=3)运算后x的值是_____.02已知a=-13,b=6,a%b的十进制数值为_____.-13已知a=12,写出表达式05)?0:1;执行后整型变量a的值是_____.15C语言中,数组名是一个不可变的_____常量,不能对它进行加减和赋值运算.指针地址6C语言中一个函数由函数首部和_____两部分组成.函数体7设有以下共用体类型说明和变量定义,则变量c在内存所占字节数是__20___。unionstud{shortintnum;charname[10];floatscore[5];doubleave;}c;8在C语言中,关闭文件即是文件指针不再指向该_____.文件n2012年C语言试题与答案精选四、程序设计/*------------------------------------------------【程序设计】--------------------------------------------------功能:计算并输出给定整数n的所有因子之和(不包括1与自身)。注意:n的值不大于1000。例如:n的值为855时,应输出704。------------------------------------------------*/#include"stdio.h"intfun(intn){/*********Begin**********//**********End**********/}voidTestFunc(){FILE*IN,*OUT;intiIN,iOUT,i;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<5;i++){n2012年C语言试题与答案精选fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%dn",iOUT);}fclose(IN);fclose(OUT);}main(){printf("s=%dn",fun(855));TestFunc();}【参考代码】ints=0,i;for(i=2;ijj<=i+4i+4>jj<5+in2012年C语言试题与答案精选============================================================【空2】【参考答案】i=0============================================================【空3】【参考答案】a[i][j]============================================================【空4】【参考答案】printf("n")============================================================/*-------------------------------------------------------【程序填空】---------------------------------------------------------功能:计算n门课程的平均分。例如:若有5门课程的成绩是:90.5,72,80,61.5,55则函数的值为:71.80。-------------------------------------------------------*/#includefloatfun(float*a,intn){inti;floatave=0.0;/***********FILL***********/for(i=0;________;i++)ave=ave+a[i];ave=ave/n;/***********FILL***********/_________;n2012年C语言试题与答案精选}intmain(){floatscore[30]={90.5,72,80,61.5,55},aver;/***********FILL***********/aver=fun(_______,5);printf("nAveragescoreis:%5.2fn",aver);return0;}【空1】【参考答案】ii============================================================【空2】【参考答案】returnave;============================================================【空3】【参考答案】score============================================================第二套一、选择题:1sizeof(float)是(C)。A、一个浮点表达式B、一个不合法的表达式C、运算结果是一个整型表达式。D、一种函数调用n2012年C语言试题与答案精选2下列数据中属于"字符串常量"的是(B)。A、'A'B、"ABC"C、ABCD、'ABC'3用下面的scanf函数输入数据,使得i=10,k=15选择正确的键盘输入方法(B).(用"[CR]"表示回车,U表示空格)main(){inti,k;scanf("i=%d,k=%d",&i,&k);}A、i=10[CR]k=15[CR]B、i=10,k=15[CR]C、10U15[CR]D、10,15[CR]4逻辑表达式3<2||-1&&4>3-!0的值为:(A)A、1B、3C、0D、25语句while(!E);中的表达式!E等价于(D)。A、E==1B、E!=0C、E!=1D、E==06以下正确的描述是(A).A、只能在循环体内和switch语句内使用break语句B、continue语句的作用是终止整个循环的执行C、从多层嵌套的外层循环中退出时,只能使用goto语句D、在循环体内使用break和continue语句的作用相同7下面各语句中,能正确进行赋字符串操作的语句是(B).A、chars1[5][]={"ABCDE"};B、chars2[6]={'A','B','C','D','E'};C、charst[][]={"ABCDE"};D、chars[5]={'A','B','C','D','E'};n2012年C语言试题与答案精选8若有说明:inta[3][4]={0};则下面正确的叙述是(A)。A、数组a中每个元素均可得到初值0B、只有元素a[0][0]可得到初值0C、数组a中各元素都可得到初值,但其值不一定为0D、此说明语句不正确9执行下面程序后,输出结果是(D)。main(){inta,b,c;a=45,b=27,c=0;c=max(a,b);printf("%dn",c);}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}A、72B、18C、27D、4510以下正确的描述是:在C语言程序中(B)。A、函数的定义可以嵌套,但函数的调用不可以嵌套B、函数的定义不可以嵌套,但函数的调用可以嵌套C、函数的定义和函数的调用均可以嵌套D、函数的定义和函数的调用均不可以嵌套11在C语言的函数中,下列正确的说法是(B)。A、形参可以是常量和变量B、可以有也可以没有形参C、数组名不能作形参D、必须有形参12inta[10]={1,2,3,4,5,6,7,8};int*p;p=&a[5];p[-3]的值是(D)。A、4B、2C、不一定D、3n2012年C语言试题与答案精选13若有以下程序段,则使用错误的选项是(C).structstudent{intnum;intage;};structstudentstu[3]={{1001,20},{1002,19},{1004,20}};main();{structstudent*p;p=stu;…;}A、(*p).numB、(p++)->numC、p=&stu.ageD、p++14若以"a+"方式打开一个已存在的文件,则以下叙述正确的是(A)。A、文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作B、以上各种说法皆不正确C、文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作D、文件打开时,原有文件内容被删除,只可作写操作二、判断:1.#define和printf都不是C语句。正确2.格式字符%x用来以十六进制形式输出整数.正确3.语句if(a>b)printf("%d",a);elseprintf("%d",b);可以用条件表达式a>b?a:b取代.错误4.逻辑表达式-5&&!8的值为1.错误5.循环结构中的continue语句是使整个循环终止执行错误6.for循环语句不能用于循环次数未知的情况下.错误7.引用数组元素时,数组元素下标必须是整型常量.错误8.数组的首地址一定是第一个数组元素的地址.正确9.数组整体不参加数据处理(即不参加各种运算),参加数据处理的只能是数组的元素.正确10.数组名作为函数调用时的实参,实际上传递给形参的是数组全部元素的值.错误11.在主函数中,必须要对被调用函数进行类型说明,否则在编译时会出现错误.错误12.在一个函数中定义的静态局部变量不能被另外一个函数所调用.正确13.计算机编译系统对宏定义在编译时进行语法检查.错误n2012年C语言试题与答案精选1.指向某一变量的指针,就是该变量的内存地址.正确2.对于不同类型的数据,若想合成一个有机的整体,可以引用结构体进行定义。正确3.在打开文件时,必须说明文件的使用方式,"r"表示以只读方式打开一个文件.正确三、填空题:1.intx=2;z=x++-1;则x的值为__3___.2.设x=2.5,a=7,y=4.7,算术表达式x+a%3*(int)(x+y)%2/4的值为___2.5__.3.设x=62,表达式x>=60&&x<70||x==1的值为__1___.4.c语言表达式5>2>7>8的值是___0__.5.字符串比较的库函数是__Strcmp___,只写函数名即可.6.从函数的形式上看,函数分为无参函数和__有参函数___两种类型.7.设有以下共用体类型说明和变量定义,则变量a在内存所占字节数__16___。unionstud{charnum[6];floats[4];doubleave;}a,*p;8.在C语言中,根据要处理的文件存储的编码形式,可以把文件分为ASCII文件和__二进制___文件.四、程序设计:/*------------------------------------------------【程序设计】--------------------------------------------------功能:用函数求N个[10,60]上的整数中能被5整除的最大的数,如存在则返回这个最大值,如果不存在则返回0。------------------------------------------------*/#include"stdio.h"#include"stdlib.h"#defineN30intfind(intarr[],intn){intm=0;/*********Begin**********/n2012年C语言试题与答案精选/**********End**********/return(m);}main(){inta[N],i,k;voidTestFunc();for(i=0;im)m=arr[i];/*------------------------------------------------【程序设计】--------------------------------------------------功能:根据整型参数n,计算如图公式的值。------------------------------------------------*/#include"stdio.h"#include"conio.h"doublefun(intn){/*********Begin**********//**********End**********/}main(){intm;voidTestFunc();printf("Enterm:");scanf("%d",&m);n2012年C语言试题与答案精选printf("nTheresultis%fn",fun(m));TestFunc();}voidTestFunc(){FILE*IN,*OUT;ints;intt;doubleo;IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFileError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFileError");}for(s=1;s<=5;s++){fscanf(IN,"%d",&t);o=fun(t);fprintf(OUT,"%fn",o);}fclose(IN);fclose(OUT);}【参考代码】doublea=1;inti;for(i=1;ij;j++)for(j=0;j<=i;j++)for(j=0;i>=j;j++)for(j=i+1;j=j;j++)for(j=i+1;j<=n-1;j++)for(j=i;j<=n-i;j++)============================================================【改错3】【参考答案】t=a[i][j];============================================================【改错4】【参考答案】a[j][i]=t;============================================================/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:从键盘输入10个字符,统计其中数字字符的个数。------------------------------------------------------*/#includeintmain(){inti,sum=0;charc;for(i=11;i>=2;i--){/**********ERROR**********/n2012年C语言试题与答案精选c=gets();if(c<'0'||c>'9')/**********ERROR**********/break;++sum;}printf("sum=%d",sum);return0;}【改错1】【参考答案】c=getchar();============================================================【改错2】【参考答案】continue;============================================================六、程序填空:/*-------------------------------------------------------【程序填空】---------------------------------------------------------功能:从键盘上输入2名学生4门课成绩,求每个学生的平均成绩,并统计不及格门次。-------------------------------------------------------*/#include#include"math.h"intmain(){inti,j,n=0;floatx,sum,avg;for(i=1;i<=2;i++){/***********FILL***********/____________;for(j=1;j<=4;j++){scanf("%f",&x);n2012年C语言试题与答案精选if(x<60)n++;/***********FILL***********/___________;}avg=sum/4.0;printf("navgofNO.%dis%5.2f",i,avg);}printf("n%d",n);return0;}【空1】【参考答案】sum=0============================================================【空2】【参考答案】sum=sum+xsum+=x============================================================/*-------------------------------------------------------【程序填空】---------------------------------------------------------功能:设数组a中的元素均为正整数,以下程序是求a中偶数的个数和偶数的平均值。-------------------------------------------------------*/#includeintmain(){inta[10]={1,2,3,4,5,6,7,8,9,10};intk,s,i;floatave;for(k=s=i=0;i<10;i++){/***********FILL***********/if(a[i]%2!=0)_______;/***********FILL***********/s+=________;k++;}n2012年C语言试题与答案精选if(k!=0){ave=s/k;printf("%d,%fn",k,ave);}return0;}【空1】【参考答案】continue============================================================【空2】【参考答案】a[i]============================================================第三套一、选择题1下列数据中,为字符串常量的是()。DA、'A'B、Howdoyoudo.C、$abcD、"house"2以下所列的C语言常量中,错误的是()。BA、0xFFB、1.2e0.5C、2LD、'72'3以下程序的输出结果是()。Dmain(){floatx=3.6;inti;i=(int)x;printf("x=%f,i=%dn",x,i);}n2012年C语言试题与答案精选A、x=3.600000,i=4B、x=3i=3.600000C、x=3,i=3D、x=3.600000,i=34若k是整型,则以下程序段的执行结果是:()Bk=-3;if(k<=0)printf("####")elseprintf("&&&&");A、####B、有语法错误,无结果C、&&&&D、####&&&&5若x=2,y=3则x||y的结果是()。CA、3B、0C、1D、26针对下列程序段回答问题(B).for(t=1;t<=100;t++){scanf("%d",&x);if(x<0)continue;printf("%3d",t);}A、x>=0时什么也不输出B、最多允许输出100个非负整数C、printf函数永远也不执行D、当x<0时整个循环结束7以下程序的执行结果是()。Bmain(){intnum=0;while(num<=2){num++;printf("%d,",num);}}A、0,1,2B、1,2,3,C、1,2,3,4,D、1,2,8选择正确的输入语句(D)。:(其中:charstring[20];)使得string的内容为"Iamn2012年C语言试题与答案精选student".A、scanf("%s",string);B、scanf("%c",&string);C、scanf("%s",&string);D、gets(string);9对以下说明语句inta[10]={6,7,8,9,10};的正确理解是()。BA、将5个初值依次赋给a[6]至a[10]B、将5个初值依次赋给a[0]至a[4]C、因为数组长度与初值的个数不相同,所以此语句不正确D、将5个初值依次赋给a[1]至a[5]10以下标识符中可以作为用户函数名的是().DA、structB、intC、unionD、go_to11以下叙述错误的是().BA、函数调用可以出现在一个表达式中B、函数调用可以作为一个函数的形参C、函数调用可以作为一个函数的实参D、函数允许递归调用12若用数组名作为函数的实参,传递给形参的是()。BA、数组第一个元素的值B、数组的首地址C、数组元素的个数D、数组中全部元素的值13在C语言程序中()。BA、函数的定义可以嵌套,但函数的调用不可以嵌套B、函数的定义不可以嵌套,但函数的调用可以嵌套C、函数的定义和函数调用不可以嵌套D、函数的定义和函数调用均可以嵌套14下列说法中正确的是().BA、函数调用不占运行时间,只占编译时间.B、宏替换不占运行时间,只占编译时间.C、有参数的宏定义,就是函数.D、在定义宏时,宏名与带参数的括弧之间可以加空格.15若有说明:int*p,m=5,n;以下正确的程序段是()。DA、scanf("%d",&n);*p=n;n2012年C语言试题与答案精选B、p=&n;scanf("%d",*p)C、p=&n;scanf("%d",&p);D、p=&n;scanf("%d",p);16对于下述定义,不正确的叙述是().Buniondata{inti;charc;floatf;}a,b;A、变量a的地址和它的各成员地址都是相同的B、可以在定义类型的同时定义变量a,并对a的任意成员初始化C、变量a所占内存的长度等于成员f的长度D、如果有定义语句uniondataa={6};则对变量a的初始化是正确的17有两个整型变量dog和cat,若要从磁盘文件把数据读到其中,正确的形式是().BA、fscanf(dog,2,1,fp);B、fscanf(fp,"%d%d",&dog,&cat);C、fscanf(dog,cat,2,1,fp);D、fscanf(fp,"%d",&dog,&cat);二、判断1.若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变【 Y 】2.  charc[6]="abcde";printf("%3s",c)表示输出的字段的宽度,如果被输出的数据的位数大于3,按实际位数输出.  【 Y 】3 条件表达式x?'a':'b'中,若x=0时,表达式的值为'a'.  【 N 】4 在逻辑运算符中的运算级别由高向低依次为&&->||->!  【 N 】5 do-while循环由do开始,while结束,循环体可能一次也不做。 【 N 】6 continue语句用于终止循环体的本次执行.  【 Y 】7 若有定义和语句:inta[3][3]={{3,5},{8,9},{12,35}},i,sum=0;for(i=0;i<3;i++)sum+=a[i][2-i];则sum=21.    【 Y 】8 inta[3][4]={{1},{5},{9}};它的作用是将数组各行第一列的元素赋初值,其余元素值为0。    【 Y 】9 定义一维数组的形式为:类型说明 数组名[表达式],其中表达式可以是正整型常量表达式、字符常量表达式.   【 Y 】10 在C语言中,函数名代表函数的入口地址.  【 Y 】11 函数调用语句:func(rec1,rec2+rec3,(rec4,rec5));中,含有的实参个数是5【 N 】12 数组名可以作为函数的实参和形参.  【 Y 】13 一个include命令只能指定1个被包含的文件。  【 Y 】n2012年C语言试题与答案精选14 若p为指针变量,a为数组名,则a-p是合法的表达式.  【 Y 】15 在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量。 【 Y 】 16 C语言中,关闭一个文件就删除了这个文件.  【 N 】三、填空1 已知floati=5.6;inta;写出语句a=(int)i;执行后变量i的值是_____.  5.62 设有intx=11,则表达式(x++*1/3)的值是_____。 33 若intx=6;则x+=x-=x*x表达式最后x的值是_____.  -604 设x=2&&2||5>1,x的值为_____.  15 连接字符串的函数是_____,只写函数名即可.  Strcat6 函数不可以进行嵌套定义,但可以进行嵌套_____.  调用7 设有以下结构类型说明和变量定义,则变量b在内存所占字节数是__21___。 structstud{shortintage;charnum[3];floats[2];doubleave;}b,*p;8 若有fp=fopen("a1.dat","r+")打开文件语句,这个文件的数据是以__ASCII码___的形式存放在内存中,该文件的使用方式为读/__文本___。  四、程序设计1 /*------------------------------------------------【程序设计】--------------------------------------------------功能:输入n个数,并求出小于平均值的数的个数。------------------------------------------------*/#include"stdio.h"intaverage_num(inta[],intn){/*********Begin**********//**********End**********/}main(){n2012年C语言试题与答案精选intn,a[100],i,num;voidTestFunc();scanf("%d",&n);for(i=0;ia[i])k++;n2012年C语言试题与答案精选return(k);2   /*------------------------------------------------【程序设计】--------------------------------------------------功能:从字符串中删除指定的字符。同一字母的大、小写按不同字符处理。例如:若程序执行时输入字符串为:turbocandborlandc++从键盘上输入字符:n,则输出后变为:turbocadborladc++,如果输入的字符在字符串中不存在,则字符串照原样输出。------------------------------------------------*/#include"stdio.h"voidfun(chars[],charc){/*********Begin**********//**********End**********/}voidTestFunc(){FILE*IN,*OUT;chari[200];/*charo[200];*/IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFileError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFileError");}fscanf(IN,"%s",i);n2012年C语言试题与答案精选fun(i,'n');fprintf(OUT,"%s",i);fclose(IN);fclose(OUT);}main(){staticcharstr[]="turbocandborlandc++";charch;printf("原始字符串:%sn",str);printf("输入一个字符:");scanf("%c",&ch);fun(str,ch);printf("str[]=%sn",str);TestFunc();}【参考代码】char*q=s;for(;*q;q++)if(*q!=c)*(s++)=*q;*s=0;五、程序改错1/*--------------------------------------------------------【程序改错】--------------------------------------------------------功能:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。例如:输入ab12c3d,则输出123。注意:不得增行或删行,也不得更改程序的结构!------------------------------------------------------*/#include"stdio.h"/**********ERROR**********/voidfun(chars){inti,j;for(i=0,j=0;s[i]!='';i++)if(s[i]>='0'&&s[i]<='9')/**********ERROR**********/n2012年C语言试题与答案精选s[j]=s[i];/**********ERROR**********/s[j]="";}main(){charitem[80];printf("nEnterastring:");gets(item);printf("nnThestringis:"%s"n",item);fun(item);printf("nnThestringofchangingis:"%s"n",item);}【改错1】【参考答案】voidfun(char*s)voidfun(chars[])voidfun(chars[80])============================================================【改错2】【参考答案】s[j++]=s[i];{s[j]=s[i];j++;}============================================================【改错3】【参考答案】s[j]='';============================================================2/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:读入一个整数m(5≤m≤20),函数rnd获得m个随机整数,n2012年C语言试题与答案精选函数sortpb将这m个随机整数从小到大排序。例如:若输入整数7,则应输出:3101728323647。------------------------------------------------------*/#include"conio.h"#include"stdio.h"sortpb(intn,inta[]){/**********ERROR**********/inti,j,p;for(j=0;ja[j])p=i;/**********ERROR**********/if(p==j){t=a[j];a[j]=a[p];a[p]=t;}}}doublernd(){statict=29,c=217,m=1024,r=0;r=(r*t+c)%m;return((double)r/m);}getarr(intn,int*x){inti;for(i=1;i<=n;i++,x++)*x=(int)(50*rnd());}putarr(intn,int*z){inti;for(i=1;i<=n;i++,z++)n2012年C语言试题与答案精选{printf("%4d",*z);if(!(i%10))printf("n");}printf("n");}main(){intaa[20],n;printf("nPleaseenteranintegernumberbetween5and20:");scanf("%d",&n);getarr(n,aa);printf("nnBeforesorting%dnumbers:n",n);putarr(n,aa);sortpb(n,aa);printf("nAftersorting%dnumbers:n",n);putarr(n,aa);}【改错1】【参考答案】inti,j,p,t;============================================================【改错2】【参考答案】if(a[p]>a[i])p=i;if(a[i]=j(i+j)>(n-1)&&j(n-1)&&j*pmax)pmax=&a[i];/***********FILL***********/printf("%d",_____);}【空1】【参考答案】pmax=&a[0]pmax=a============================================================【空2】【参考答案】*pmax============================================================n2012年C语言试题与答案精选第四套一、选择题1字符串"\'efg'\"的长度是:(c).A、3B、11C、7D、52设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为()。AA、doubleB、不确定C、intD、float3下列语句的结果是(b)。main(){intj;j=3;printf("%d,",++j);printf("%d",j++);}A、3,3B、4,4C、3,4D、4,34逻辑表达式!(2-1)&&x||0的值是(b)A、1B、0C、3D、2inta=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;则a的值为(c)。A、3B、2C、1D、不一定inta=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;则a的值为(b)。A、3B、2C、1D、不一定5以下正确的描述是(a).n2012年C语言试题与答案精选A、只能用continue语句来终止本次循环B、switch语句中不能出现continue语句C、在循环中break语句不能独立出现D、goto语句只能用于退出多层循环6下面合法的语句定义是(a).A、chara[]={'0','1','2','3','4','5'};B、inta[]="string";C、inta[5]={0,1,2,3,4,5};D、chara="string";7chara[10];不能将字符串"abc"存储在数组中的是(b)。A、inti;for(i=0;i<3;i++)a[i]=i+97;a[i]=0;B、a="abc";C、strcpy(a,"abc");D、a[0]=0;strcat(a,"abc");8在C语言中,一维数组的定义方式为:类型说明符数组名(b)。A、[整型常量]或[整型表达式]B、[正整型常量表达式]C、[整型表达式]D、[常量表达式]9在定义全局变量和局部静态变量的同时赋值,变量的初始化在(c)时确定的.A、运行B、编辑C、编译D、调试10关于建立函数的目的,以下正确的说法是(a)。A、提高程序的可读性B、减少程序文件所占内存C、减少程序的篇幅D、提高程序的执行效率11以下函数调用语句中实参的个数是(d)。func((e1,e2),(e3,e4,e5));A、3B、5C、语法错误D、212设有宏定义#defineSUB(x,y)(x)*y,且a=3,b=4,则SUB(a++,b++)的值为(d).A、13B、16C、20D、1213变量p为指针变量,若p=&a,下列写法不正确的是(a)。n2012年C语言试题与答案精选A、*(p++)==a++B、&*p==&aC、(*p)++==a++D、*&a==a14下列程序正确的运行结果为(c).#includemain(){unionu{char*name;intage;intincome;}s;s.name="WANGLING";s.age=28;s.income=1000;printf("%dn",s.age);}15定义my_file为文件型指针变量,使用fopen只读方式打开一个已存在的二进制文件,以下正确的调用形式为(c).A、my_file=fopen("my.dat","r");B、my_file=fopen("my.dat","rb+");C、my_file=fopen("my.dat","rb");D、my_file=fopen("my.dat","r+");二、判断题对的:1若有定义和语句:inta[3][3]={{3,5},{8,9},{12,35}},i,sum=0;for(i=0;i<3;i++)sum+=a[i][2-i];则sum=21.2二维数组在内存中存贮时,是按行的顺序进行存储的。3在定义宏时,在宏名与带参数的括弧之间不应加空格.错的:若i=3,则printf("%d",-i++);输出的值为-4。格式字符%x用来以八进制形式输出整数.设u=1,v=2,w=3,则逻辑表达式u||v-w&&v+w的值为0.已知a=4,b=2,c=3,d=5,表达式a>b?a:cz&&y==z的值为_0____.C语言中,二维数组在内存中的存放方式为按___行__优先存放.函数调用时的实参和形参之间的数据是单向的___值__传递.结构体是不同数据类型的数据集合,作为数据类型,必须先说明结构体___类型__,再说明结构体变量.调用fopen函数打开一文本文件,在"使用方式"这一项中,为输入而打开需填入_r(貌似可以或者r+)____.四、编程题【程序设计】--------------------------------------------------功能:找出一个大于给定整数且紧随这个整数的素数,并作为函数值返回。------------------------------------------------*/#include"stdio.h"#include"conio.h"intfun(intn){/*********Begin**********/inti,k;for(i=n+1;;i++){for(k=2;k1e-4)while(0.00010.0001)六、程序填空/*-------------------------------------------------------【程序填空】---------------------------------------------------------功能:计算并输出500以内最大的10个能被13或17整除的自然数之和。-------------------------------------------------------*/#include"stdio.h"/***********FILL***********/intfun(__intk___){intm=0,mc=0,j,n;/***********FILL***********/while(k>=2&&__mc<10___){/***********FILL***********/if(k%13==0||_k%17==0____){m=m+k;mc++;}k--;}/***********FILL***********/__return(m)___;}main(){printf("%dn",fun(500));n2012年C语言试题与答案精选}/*-------------------------------------------------------【程序填空】---------------------------------------------------------功能:以下程序中,函数fun的功能是计算x^2-2x+6,主函数中将调用fun函数计算:y1=(x+8)^2-2(x+8)+6y2=(sin(x))^2-2sin(x)+6请填空。---------------------------------------------------------------*/#include#includedoublefun(doublex){return(x*x-2*x+6);}main(){/***********FILL***********/doublex,____y1,y2______;printf("Enterx:");scanf("%lf",&x);/***********FILL***********/y1=fun(___(8+x)______);/***********FILL***********/y2=fun(___sin(x)______);printf("y1=%lf,y2=%lfn",y1,y2);}
查看更多

相关文章

您可能关注的文档