C程序设计试题1

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1C程序设计试题1一、单项选择题1.选出C语言的合法变量名______A_auto_Bstud#1CstaticD2_end2.如果函数体中没有return语句,则正确的说法是A.函数不能返回B.函数执行最后一条语句后返回C.可以有break语句返回D.可以用continue语句返回3.函数调用时,形参和实参之间的数据传递方式为A.地址传递。B.由实参传递给形参的单向值传递。C.由形参传递给实参的单向值传递。D.由实参传递给形参、再由形参传递给实参的双向值传递。4.文件包含预处理#include后面的文件名用尖括号括起时,系统寻找包含文件的方式为A.直接按系统设定的标准方式搜索目录B.先在源程序所在目录搜索,再按系统设定的标准方式搜索C.只搜索源程序所在目录D.只搜索当前目录5.关于switch语句的正确说法是A.各case分支的最后一条语句必须是break语句。B.必须有default分支。C.case后的表达式必须为常量表达式。D.case后的表达式的值必须按升序或降序排列。6.C语言中的字符型数据在内存中是以______形式存储的。A原码B补码C反码DASCII码7.下列叙述中错误的是:______。A以数组名作为参数是,数据传送方向是双向的,既可以从实参数组将数据传给形参数组,又可将形参数组中的数据传回实参数组Bstatic存储类别的外部变量的作用域是从其定义点到本文件末尾C通过改变函数形参的值可以修改调用函数中的实参的值D在不同的函数中可以定义名字相同的变量,这些变量之间互不影响8.定义计算多项式f(x)=3*x*x+2*x+1之值的带参数宏,正确的宏定义为:______。A#definef(x)=3*x*x+2*x+1B#definef3*x*x+2*x+1C#definef(x)(3*x*x+2*x+1)D#define(3*x*x+2*x+1)f(x)二、填空题1.在C语言中,当do-while语句中的条件表达式的值为______时,结束该循环。2.若有以下说明和语句inta[]={1,2,3,4,5},*p;p=a;则p+5是对数组a的元素的正确引用马?______(正确填1,不正确填0)。3.表达式3|4的值为_______。4.C语言中可用来实现循环的四个语句是for,______,do-while,goto。5.表达式0?(0?3:2):(10?1:0)的值为______。26.已知inti=10;求(i++)+(i++)的值为______。7.定义intk=1;执行while(k++3)后k的值为______。8.以下程序片段的输出为______。inta=3,b=4;int*p;if(ab)p=&a;elsep=&b;printf(“%d”,*p);三程序填空1.数组a中存放N个由小到大排列的有序整数。从键盘输入一整数x,使用二分法在数组中查找是否有此整数。2.二分查找法的思路是:将待查数据与全部数组元素中位于中间下标位置的元素相比较,如果待查数据大于中间元素,则缩小查找范围,在中点之后的数组元素中继续查找;否则在在中点之前继续查找。#includestdio.h#defineN10main(){intx,mid,lo,hi;staticinta[N]={3,5,7,9,11,13,15,17,19,21};int*p=a;scanf(%d,&x);lo=___(1)___;hi=N-1;while(lo=hi){mid=(lo+hi)/2;if(x==p[mid])___(2)___;elseif(x*(p+__(3)__))lo=mid+1;elsehi=__(4)__;}if(lo___(5)____hi)printf(Found%dat%d\n,x,mid);elseprintf(%dnotfound\n,x);}四、改错题(说明:下面题目有三行程序存在错误,要求不改变程序的功能,指出出错语句,并写出完整的正确语句)从键盘输入一行字符,将其中的大写字母都改为对应的小写字母,其它字符不变。例如,如果输入AbcD,efg,则输出为abcd,efg。行号程序01#includestdio.h02main()03{04charstr[81];05charp[];06printf(Pleaseenterastring:);07scanf(”%s”,s);08p=str;309while(*p)10{11if(*p=’A’&&*p=’Z’)12{13*p+=’a’-’A’;14}15*p++;16}17printf(Thelowerstring:%s\n,str);18}可能出错的程序语句的行号为:05、07、08、09、11、13、15,错误依次为:行号______应改为___________________________________________。行号______应改为___________________________________________。行号______应改为___________________________________________。二、阅读理解1.下面程序的输出结果为:___________。main(){staticinta[]={1,2,3,4,5,6};int*p=a+1;p++;*(p+3)+=2;printf(“%d”,*(p+3));}2.下面程序的输出结果为:__________。main(){inta=2,i;for(i=0;i3;i++)printf(“%d,”,f(a));}f(a)inta;{intb=0;staticintc=3;b++;c++;return(a+b+c);}五、程序设计1.用π/4≈1-1/3+1/5-1/7+…公式求π的近似值,直到最后一项的绝对值小于10-6为止。2.用递归的方法求n!。3.输入3个整数,按由大到小的顺序输出。(注:要求用指针方法处理)。4C程序设计模拟题2一单项选择题1.选出C语言的合法常量_____A0fdB0xfdaLCe8D.e-42.选出合法的变量名______AautoB2_endsCTURBO_CD.month3.选出合法的字符串常量_____。A’String’B”It\’saboy”C”C:\\x.txt”D”Hesaid,’Sorry!’”4.若a为一维整型数组的数组名,则对指针变量p的正确说明和初始化为A.int*p=a[0];B.int*p=&a[0];C.int*p=*a;D.int*p=&a;5.对两个静态数组A和B进行如下初始化.staticcharA[]=”ABCDEF”;staticcharB[]={’A’,’B’,’C’,’D’,’E’,’F’};则下列叙述正确的是______。A.A和B完全相同B.A和B只是长度相同C.A和B不相同,A是指针数组D.A数组长度比B数组长6.以下说法错误的是A.宏替换只是字符替换B.宏名必须用大写字母C.宏替换是在预处理时进行的D.程序中引用带参数的宏时,对参数的数据类型没有限制7.对于如下数据定义floatx,y;为了使x和y分别为1.23和4.56,输入如下内容:x=1.23,y=4.56回车则正确的scanf调用是A.scanf("%f%f",&x,&y);B.scanf("%f,%f",&x,&y);C.scanf("x=%fy=%f",&x,&y);D.scanf("x=%f,y=%f",&x,&y);8.以下共用体类型和变量的定义,正确的是______。A.unionstudentB.union{intnumber,{intnumber,charname[20],charname[20],}s;};s;C.unionstudentD.unionstudent{intnumber;{intnumber;charname[20];charname[20];}s;};s;二填空题1.定义intx=10,y,z;执行y=z=x;x=y==z;后,变量x的值为_______。2.charstr[20];str=string;5这种字符串赋值方式正确吗?______(正确填1,不正确填0)。3.设x为整型量,则表达式x∧x的值为_______。4.若有以下说明和语句inta[]={1,2,3,4,5};则a++是对数组元素地址的正确表示吗______(正确填1,不正确填0)。5.表达式(1/2)*10.0的值为______。6.将一维数组x的第i个元素的地址赋给指针变量p的语句是______。7.定义inti=1;执行while(i++5)后i的值为______。8.设a=7,b=6,c=5;写出表达式(a+b)(c*c)&&b的值是______。三程序填空题1.数组a中存放N个由小到大排列的有序整数。从键盘输入一整数x,使用二分法在数组中查找是否有此整数。二分查找法的思路是:将待查数据与全部数组元素中位于中间下标位置的元素相比较,如果待查数据大于中间元素,则缩小查找范围,在中点之后的数组元素中继续查找;否则在在中点之前继续查找。#includestdio.h#defineN10main(){intx,mid,lo,hi;staticinta[N]={3,5,7,9,11,13,15,17,19,21};scanf(%d,&x);lo=___(1)___;hi=N-1;while(lo=hi){mid=(lo+hi)/2;if(x==a[mid])___(2)___;elseif(xa[mid])lo=mid+1;elsehi=__(3)__;}if(lo=hi)printf(Found%dat%d\n,x,mid);elseprintf(%dnotfound\n,x);四改错题(下面每小题有三行程序存在错误,要求不改变程序的功能,指出出错语句,并写出完整的正确语句)1.本程序计算N×N二维整型数组中元素值为负数的元素个数占全部元素个数的百分比(输出时保留一位小数)。行号程序01#includestdio.h02#defineN403floatfun(intarr[][N]);04main()05{06staticintaa[][N]={07{1,2,3,4},{4,5,6,7},08{10,11,12,13},{20,21,22,23}};09floatp;10p=fun(&aa);11printf(p=%.1f%%,p*100);12}13voidfun(intarr[][N])614{15inti,j;16ints;17for(i=0;iN;i++)18for(j=0;jN;j++)19if(arr[i][j]0)20s++;21return(float)s/(N*N);22}可能出错的程序语句的行号为:03、06、10、11、13、16、17、19、21,错误依次为:行号______应改为___________________________________________。行号______应改为___________________________________________。行号______应改为___________________________________________。2.从键盘输入一行字符,查找字符串中是否有大写字母’A’。若有则输出Found,若无则输出NotFound。行号程序01#includestdio.h02main()03{04chara[81],*p=a;05charmessage[10];06message=NotFound;07printf(Pleaseenterastring:);08gets(&a);09while(*p)10{11if(p==’A’)12{13message=Found;14break;15}16p++;17}18puts(message);19}可能出错的程序语句的行号为:05、06、0

1 / 11
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功