选择题(每题2分,共30分)1、以下关于C语言说法错误的是:()A、语言简洁紧凑B、C语言不区分大小写C、C程序的三种基本结构是顺序 、选择、循环D、C语言可移植性好2、请选出可用作C语言用户标识符的一组标识符()A、voiddefineWORD B、a3_b3_123IFC、For-abcaseD、2aDOsizeof3、sizeo f(float)是()A、-个双精度型表达式B、-个整型表达式C、-个单精度型表达式D、-个不合法的 表达式4、下面四个选项中,均是不合法的浮点数的选项是()A、-e3?.2341e3B、160.?0.12??e3C、123 ?2e4.2?.e5-.18?123e4?0.05.以下关于运算符优先顺序的描述中正确的是()A、关系运算符<算术运算 符<赋值运算符<逻辑运算符B、赋值运算符<逻辑运算符<关系运算符<算术运算符C、算术运算符<关系运算符<赋值运算符<逻辑运算符D、 逻辑运算符<关系运算符<算术运算符<赋值运算符6、下面程序的运行结果是()#includeintmai n(){inti=1,sum=0;do{sum+=i;i++;}while(i<=5)printf("%d",sum);}A、 15B、死循环,没有输出C、21D、有语法错误,不运行7、下列程序的输出结果为()# includeintmain(){intm=7,n=4;floata=38.4,b=6.4,x;x=m/ 2+na/b+1/2;printf("%f\n",x);return0;}A、28.000000B、27.500000 C、28.500000D、27.0000008、有以下程序#include#defineN2#defi neMN+1#defineMUN(M+1)M/2intmain(){printf("%d\n",MUN);return 0;}程序运行后输出结果是()A、8B、9C、5D、69、设x和y均为int型变量,则执行以下的循环后,y的值为(??)。f or(y=1,x=1;y<=50;y++)?{if(x>=0)break;if(x%2==1)?{x+=5;continue;}x -=3;?}?A.2???????????B.4??????????C.6???????????D.110、已知:charch= ''A'';则下列表达式的值是()。ch=(ch>=''A''&&ch<=''Z'')?(ch+30>=''a''||ch+60> =''z''?ch+57:ch+32):ch;A、AB、aC、ZD、z1 1、下列数组定义错误的是()A、intx[2][3]={1,2,3,4,5,6};B、intx[2][3]={{1,2 },{3,4},{5,6}}C、intx[][3]={{1,2,3},{4,5,6}}D、Intx[][3]={0}12、若 有定义语句:charS[12]="123\\045\067"则strlen(S)的值是()A、10B、9 C、8D、713、以下函数调用语句中含有()个实参func((e1,e2),(e3, e4,e5));A、2B、3C、5D、语法错误14、C语言中函数返回值的类型是由( )决定的.A、函数定义时指定的类型B、return语句中的表达式类型C、调用该函数时的实参的数据类型D、 形参的数据类型15、下面这段代码的执行结果为?(?)#include?void?main()?{填空题(每题2 分,共30分)C语言属于三大语言中的____________语言。C语言中,逻辑"真"等价于_____________。C语言规定 了以字符___________作为字符串结束标志。一个C源程序中至少应包含一个_____________函数。5、下面的代码是通过 数列的思想求圆周率?float?p=1;?float?n=1;?int?j;?for(j=1;j<=num;j++,n++){?i f(j%2==0){?p=(n/(n+1));?}else{?p=((n+1)/n);?}?}?p=2p;printf("p 的值为:%.7f\n",p);其中num的值__________________(越小/越大/越靠近一个固定数值),求出来的圆周率 p越精确。6、若m是一个三位数,则求个位数字的表达式为_____________。7、当a=3,b=2,c=1时,表达式f=a> b>c的值是_____________。8、字符串常量“年轻人不讲武德”的长度是_____________。9、inta[12] ={1,4,7,10,2,5,8,11,3,6,9,12};i=10;则a[a[--i]]的值是__________。10、dou blefloatchar三种类型占字节数分别为________________。(三个字节数之间用逗号隔开)11、观察下面的程 序作答if(a>b)a=1;if(ac)c=1;elsea=1;elseb=1;elsec=1;上面的三个 ifelse中,最后一个else是与第______(写数字1,2,3)个if相配对的。12、int?a=5,b=6,c=7,ma x;max=(a>b?a:b)>c?(a>c?a:c):b;?printf("max=%d",max);输出结果值max= _____________。?13、在定义inta[5][6];后,第10个元素是_____________。14、下面代 码的运行结果为__________________________。inti=1,sum=0;while(i<100){++i ;sum+=i;}printf("%d",sum);15、有一递归函数如下:intmath(inta,intb){a++;b --;if(a+b>16)returna+b%2;else{if(a>b)returnmath(a-b,a+b);elsei f(a。判断题(每题1分,共10分)数组的大小是可变的,但所有数组元素的类型必须相同。()2、任何表达式语句都是表达式加分号组成的 。()3、程序的执行总是从第一个定义的函数开始。()4、用字符逐个赋值比用字符串方式赋值要多占一个字节。( )5、C语言的数据存储单位是位(bite)。()6、调用函数时,当实参和形参都是简单变量时,它们之间数据传递的过程是7、 只能在循环体内和switch语句体内使用break语句。()8、do-while循环的while后的分号不可以省略。( )9、C语言标准输入操作中,gets()函数一次只可读取一个字符。()10、C语言不允许函数嵌套定义;也就是说, 不能在一个函数中定义另外一个函数,必须在所有函数之外定义另外一个函数。()四、程序补全(共15分)1、通过调用函数getS trLen(),得到字符串的长度(5分)intgetStrLen(charstr[]){intlen=0;while (){}return;}intmain(){chara[20];scanf();printf("%d",get StrLen(a));return0;}根据图形补全下面代码(10分)#includeintmain() {}for(intj=3;j>=i;j--){printf("");}printf("");if(){p rintf("");}printf("");}printf("\n");}return0;}五、程序改错(共15分)有一个已 经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。此代码中有三个错误,请改正。(6分)#include>intmain(){inta[11]={1,4,6,9,13,16,19,28,40,100};inttemp1,te mp2,number,end,i,j;printf("原始数组是:\n");for(i=0;i<10;i++)printf( "%4d",a[i]);printf("\n插入一个新的数字:");scanf("%d",&number);end=a[1 0];if(number>end-1)a[10]=number;else{for(i=0;i<10;i++){if( a[i]>number){temp1=a[i];a[i]+=number;for(j=i+1;j<11;j++){te mp2=a[j];a[j]=temp1;temp1=temp2;}break;}}}for(i=0;i<11;i+ +)printf("%4d",a[i]);printf("\n");return0;}__________________ _________________________________________________________________ _____________________________________3._________________________ ____________________________________2、统计所有小于非负整数?n?的质数的数量(9分)#in clude#includeintcountPrimes(intn){intnums[n +1];for(inti=0;i1;i<=sqrt(n);i++){if(nums[i]){for(intk=2;ki
|
|