01C语言笔试试题1.docx
- 文档编号:12478990
- 上传时间:2023-04-19
- 格式:DOCX
- 页数:14
- 大小:22.50KB
01C语言笔试试题1.docx
《01C语言笔试试题1.docx》由会员分享,可在线阅读,更多相关《01C语言笔试试题1.docx(14页珍藏版)》请在冰豆网上搜索。
01C语言笔试试题1
二级C语言笔试试卷
(1)
(共100分)
注意事项:
1.一、二题为客观题,请将答案涂在机读答题卡上
2.三、四、五、六题为主观题,请将答案做在答题纸上
一.单项选择题。
(每小题1分,共20分)
1.一个C程序的执行是从(A)。
(A)本程序的main函数开始,到main函数结束
(B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
(C)本程序的main函数开始,到本程序文件的最后一个函数结束
(D)本程序文件的第一个函数开始,到本程序main函数结束
2.设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是(D)。
(A)x&&y;(B)x<=y;
(C)x||y+z&&y–z;(D)!
((x z||1); 3.以下有关宏替换的叙述不正确的是(D)。 (A)宏替换不占用运行时间(B)宏名无类型 (C)宏替换只是字符串替换;(D)宏替换是在运行时进行的 4.已知函数的调用形式: fread(buffer,size,count,fp);其中buffer代表的是(C)。 (A)一个整型变量,代表要读入的数据项总数 (B)一个文件指针,指向要读的文件 (C)一个指针,指向要读入数据的存放地址 (D)一个存储区,存放要读的数据项 5.在位运算中,操作数每左移一位,其结果相当于(A)。 (A)操作数乘以2(B)操作数除以2 (C)操作数除以4(D)操作数乘以4 6.数字字符0的ASCII值为48,若有以下程序 #include voidmain() { chara='1',b='2'; printf("%c,",b++); printf("%d\n",b-a); } 程序运行后的输出结果是(C)。 A)3,2B)50,2 C)2,2 D)2,50 7.有以下程序 #include voidmain() { intm=12,n=34; printf("%d%d",m++,++n); printf("%d%d\n",n++,++m); } 程序运行后的输出结果是(C)。 A)12353514B)12353513 C)12343514 D)12343513 8.已有定义intk=2;int*ptr1,*ptr2,且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是(B) A)k=*ptr1+*ptr2;B)ptr2=k; C)ptr1=ptr2;D)k=*ptr1*(*ptr2); 9若有定义inti=2,a[10],*p=&a[i];则与*p++等价的是(A)。 A)a[i++]B)a[i]++C)a[i]D)a[++i] 10.有定义inta=3,b=4,c=5;执行完表达式a++>--b&&b++>c--&&++c后,a,b,c的值分别为(B)。 A)345B)435C)444D)445 11.已知: intx=1,y=2,z=0;则执行: z=x>y? 10: 20后,z的值为(B)。 A)10B)20C)1D)2 12.若已定义x和y为double类型,则表达式x=2,y=x+10/4的值是(C)。 A)2B)4C)4.0D)4.5 13.有定义语句: intb;charc[10];,则正确的输入语句是(B)。 A)scanf("%d%s",&b,&c); B)scanf("%d%s",&b,c); C)scanf("%d%s",b,c); D)scanf("%d%s",b,&c); 14.在一个源程序文件中定义的全局变量,其作用域为(B)。 A)定义所处的整个源程序文件B)从定义处开始到本源程序文件结束 C)整个主函数D)所处C程序的所有源程序文件中 15.在下面C语言的函数说明语句中,正确的是(A)。 A)intfun(intx,inty);B)intfun(intx,y); C)intfun(x,y);D)intfun(intx;inty); 16.有以下程序 #include voidmain() { intm,n,p; scanf("m=%dn=%dp=%d",&m,&n,&p); printf("%d%d%d\n",m,n,p); } 若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是(A)。 A)m=123n=456p=789 B)m=123 n=456 p=789 C)m=123,n=456,p=789 D)123 456 789 17.已知E的ASCII码是69,则执行以下语句的结果是(C) printf("%c",'E'-'8'+'5'); A)66B)AC)BD)E 18.有定义: char*s=”\t\”Name\\Address\”\n”;,那么strlen(s)等于(B)。 A)15B)16 C)17D)18 19.设有定义: intm=1,n=-1;则执行语句printf("%d\n",(m--&++n));后的输出结果是(B) A)–1B)0C)1D)2 20.有以下程序 #include voidmain() { inta,b,d=25; a=d/10%9; b=a&&(-1); printf("%d,%d\n",a,b); } 程序运行后的输出结果是(B)。 A)6,1 B)2,1 C)6,0 D)2,0 二.基本概念选择填空题(本大题后面有若干备选项,请选择合适的备选项并将其号码填入各小题的空白处。 每空2分,共10分) 1.函数main(intargc,char*argv[])中argc表示的是______①____。 2.在C语言中,没有字符串变量,只有字符变量,字符串都存储在以②为结束符的字符数组中。 3.一个函数调用语句为fun((e1,e2,e3),(e4,e5),e6);,其实参个数为__③____。 4.为了避免嵌套的if-else语句的二义性,C语言规定else总是与___④____组成配对关系。 5.当程序打开一个文件时,系统就要在内存中建立一个与该文件对应的⑤结构体变量,存储该文件的有关信息。 ①F②B③J④A⑤K 备选项: (A)空格 (B)'\0' (C)'\n' (D)在其之前未配对的if (E)参数字符串 (F)命令行参数的个数 (G)6 (H)在其之前最近的未配对的if (J)3 (K)FILE (L)EOF (M)命令行参数的字符数 三.程序填空题。 (每空2分,共20分)。 1.以下程序的功能是: 从键盘上输入若干个学生的成绩,统计计算出平均成绩。 请填空。 #include voidmain() { floatsum=0.0,ave,a; intn=0; printf("Entermark\n"); scanf("%f",&a); while(a>=0.0) { sum=sum+a; _____①_________;//n++ scanf("%f",&a); } ave=sum/n; printf("ave=%f\n",ave); } 2.下面程序的功能是将一个字符串str的内容颠倒过来,请填空。 #include voidmain() { charstr[]={"abcdefg"}; char*p1,*p2,ch; p1=str; p2=str; while(*p2! ='\0')p2++; ____②________;//p2-- while(p1 { ch=*p1;*p1=*p2;*p2=ch; ____③_____;//p1++ p2--; } puts(str); } 3.以下程序中,fun函数的功能是求m行4列二维数组每行元素中的最大值。 请填空。 #include intfun(int,int,int(*)[4]); voidmain() { inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},i; for(i=0;i<3;i++)printf("%4d",fun(④)); //i,4,a printf("\n"); } intfun(intm,intn,inta[][4]) { intj,x; x=a[m][0]; for(j=0;j returnx; } 4.下面的程序是用来在数组table中查找x,若数中存在x程序输出数组中第一个等于x的数组元素的下标,否则输出-1。 请填空。 #include inttable[10]={12,34,54,23,45,33,78,87,59,97},x; intlookup(intt[],intkey,intn) { intk; for(k=0;k if(t[k]==key)⑥;//break if( ⑦ )k=-1; //k>=n returnk; } voidmain() { scanf("%d",&x); printf("x_location: %d\n",lookup(table,x,10)); } 5.下列函数insert实现在一维数组v中插入一个元素x,且要求将该元素插入到下标为i位置,数组原有下标为i及以后的元素都将向后移动一个元素的位置,i>=0。 如果i大于等于元素的个数,则x插到数组的末尾。 原有的元素个数存放在指针n所指向的变量中,插入后元素个数加1。 主函数验证了该函的功能。 请填空。 #include voidinsert(intv[],int*n,intx,inti); voidmain() { inta[20]={1,2,3,4,5,6,7}; intkey=11; intn=7,*p=&n; insert(a,p,key,14); for(key=0;key<*p;key++)printf("%d",a[key]); putchar('\n'); printf("%d\n",n); } voidinsert(intv[],int*n,intx,inti) { intj; if(___⑧____)//i<*n for(j=*n-1;j>=i;____⑨____)//j-- _____⑩____=v[j];//v[j+1] else i=*n; v[i]=x; (*n)++; } 四.阅读程序题(每小题5分,共30分) 1.下面程序的运行结果为: ( f=6 ) #include intf(intnum,intrun) { staticintfact,i; if(run==0) { fact=1; i=1; } fact*=i; if(++i<=num) f(num,1); return(fact); } voidmain() { inti=0; printf("f=%d\n",f(3,0)); } 2.下面程序的运行结果是: (63) #include main() { inta[]={1,3,5,7,9},b[4]={2,4,6,8},*p=a,*q=b; p+=2; q++; *p=(*q)%3+5; *(++q)=*(p--)-3; printf("%d",*(p+1)); printf("%d\n",q[0]); } 3.运行程序时输入-6931,则输出结果是: (-1396) #include voidprintopp(longintn) { inti=0; if(n==0)return; else while(n) { if(n>0||i==0) printf("%1d",n%10); else printf("%ld",-n%10); i++; n/=10; } } voidmain() { longintn; scanf("%ld",&n); printopp(n); printf("\n"); } 4.下面程序的运行结果是: (34) #include #defineN2 #defineY(n)((N+1)*n) main() { intz; z=2*(N+Y(5)); printf("%d",z); } 5.以下程序的运行结果为( 9) #include voidmain() { longfun(intn); printf("%ld\n",fun(4)); } longfun(intn) { longs; if(n==1||n==2) s=2; else s=n+fun(n-1); returns; } 6.以下程序的运行结果为(4321) #include voidmain() { voidfun(int*x,int*y); inta[]={1,2,3,4},j,x=0; for(j=0;j<4;j++) { fun(a,&x); printf("%d",x); } printf("\n"); } voidfun(int*x,int*y) { staticintt=3; *y=x[t]; t--; } 五.编程序(每小题10分,共20分) 1.编写程序求下面数列 的前20项之和。 参考程序: #include main() { doublex,sum; inti; for(i=1,x=2,sum=0;i<=20;i++) { sum=sum+x; x=1+1/x; } printf("Front20termsof2/1+3/2+5/3+……=%lf\n",sum); } 2.函数fac的原型为longfac(intk);,函数利用静态变量实现: 连续以1,2,3,……,n为参数调用该函数后,函数最后返回n! 。 要求编制该函数并用相应的主函数进行测试。 参考程序: #include voidmain() { longfac(intn); intn,j; longff; scanf("%d",&n); for(j=2;j<=n;j++) ff=fac(j); printf("n! =%ld\n",ff); } longfac(intn) { staticlongff=1; ff*=n; returnff; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 01 语言 笔试 试题
![提示](https://static.bdocx.com/images/bang_tan.gif)