《2021-2022年内蒙古自治区巴彦淖尔市全国计算机等级考试C语言程序设计》由会员分享,可在线阅读,更多相关《2021-2022年内蒙古自治区巴彦淖尔市全国计算机等级考试C语言程序设计(116页珍藏版)》请在金锄头文库上搜索。
1、2021-2022年内蒙古自治区巴彦淖尔市全国计算机等级考试C语言程序设计学校:_ 班级:_ 姓名:_ 考号:_一、单选题(20题)1.在一个链式队列中,假设f和r分别为队头和队尾指针,则插入S所指结点的运算是()。A.f-next=s;f=s;B.r-next=s;r=s;C.S-next=rr=s;D.r-next=f;f=s;2.3.4.若二维数组a有m列,则在aij前的元素个数为( )。A.i*m+j-1 B.i*m+j C.J*m+i D.i*m+j+15. 当调用函数时,实参是一个数组名,则向函数传送的是_。A.数组的长度 B.数组的首地址 C.数组每一个元素的地址 D.数组每个元
2、素中的值6. 在C语言中,退格符是A.n B.t C.f D.b7. 若有以下定义;char a;int b; float c;double d;则表达式“a*b+d-c”值的类型为( )A.float B.int C.char D.double8. 设有定义int n=0,*p=&n,*q=&p;,则下列选项中正确的赋值语句是A.p=1; B.*q=2; C.q=p; D.*p=5;9.10.有以下程序main()unioncharch2;intd;s;s.d=0x4321;printf(%x,%xn,s.ch0,s.ch1);在16位编译系统上,程序执行后的输出结果是_。A.21,43 B
3、.43,21 C.43,00 D.21,0011.若i、j已定义成mt型,则下列程序段中内循环体的总执行次数是( )。for(i=6;i0;i-)for(j=0;j4;j+)A.20 B.24 C.25 D.3012.下列对队列的叙述正确的是A.队列属于非线性表 B.队列按“先进后出”原则组织数据 C.队列在队尾删除数据 D.队列按“先进先出”原则组织数据13.二叉树的第三层最少有_个结点。A.0 B.1 C.2 D.314. 下列程序的运行结果是( )。#includestdio.hmain()int x5,a1,b2,C5,d0;if(aB)if(b!3)if(!C)x1;elseif(D
4、) x1;else x-1;printf(%d,x);A.-1 B.0 C.1 D.不确定的值15.若已定义x和y为double类型,则表达式:x1,yx+3/2的值是 ( )A.1 B.2 C.2.0 D.2.516. 有以下程序 main() int num44=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,i,j; for(i=0;i4;i+) for(j=0;j=i;j+) printf(%4c,); for(j=_;j4;j+) printf(%4d,numij); prrintf(n); 若要按以下形式输出数组右上半三角 1 2 3 4 6 7 8
5、11 12 16 则在程序下划线处应填入的是A.i-1 B.i C.i+1 D.4-i17. 设有以下语句: char str1=string,str28,*str3,*str4=string; 则_不是对库函数的正确调用。A.strcpy(str1,HELLO1);B.strcpy(str2,HELLO2);C.strcpy(str3,HELLO3);D.strcpy(str4,HELLO4)18.19.设有以下定义uniondataintd1;floatd2;demo;则下面叙述中错误的是A.变量demo与成员d2所占的内存字节数相同B.变量demo中各成员的地址相同C.变量demo和各成
6、员的地址相同D.若给demod1赋99后,demod2中的值是99.020.有以下程序:int fun(int n) if(n=l)return l;else return(n+fun(n一1):main int x;scanf(d,x);x=fun(x);printf(dn,x):执行程序时,给变量X输入10,程序的输出结果是( )。A.55 B.54 C.65 D.45二、2.填空题(20题)21. 如果一个工人可管理多个设施,而一个设施只被一个工人管理,则实体“工人”与实体“设备”之间存在_联系。22. 以下sum函数的功能是计算下列级数之和。请给函数中的各变量正确赋初值。double
7、sum( double x, int n ) int i; double a,b,s;for(i=1;i=n;i+) a=a*x; b=b*i; s=s+a/b; return s;23. 下列程序用来输出结构体变量ex所占存储单元的字节数。struct st char name20; double score; ;main () struct st ex;printf(ex size: %dn,sizeof(【 】);24. 以下sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。请填空。void sstrcpy(char *s,char *
8、t) while(*s+=_); main() char str1100,str2=abcdefgh;sstrcpy(str1,str2);printf(%sn,str1);25. 若fp已正确定义为一个文件指针,d1.dat为二进制文件,请填空,以便为“读”而打开此文件:fp=fopen(【 】);。26.数据字典是各类数据描述的集合,它通常包括五个部分,即数据项、数据结构、数据流、【 】和处理过程。27. 有以下定义和语句,则sizeof(a)的值是 【 】 ,而sizeof(a.share)的值是 【 】 。struct date int day;int mouth;int year;u
9、nion int share1;float share2;share;a;28. 在关系数据库中把数据表示成二维表,每一个二维表称为【 】。29. 下面函数的功能是:找出一维数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。请填空。#include#includevoid fun(int a,int n, int *max, int *d) int I;*max=a0;*d=0;for(I=0;【 】;I+)if(*max【 】)*max=aI;*d
10、=i; main() int i, x20, max, index, n=10;randomize();for(i=0;in;i+) xi=rand()%50; printf(%4d,xi); printf(n);fun(x,n,&max,&index);printf(Max=%5d,Index=%4dn,max,index);30. 以下程序通过函数SunFun求这里f(x)=x2+1,由F函数实现。请填空。main() printf(The sum=%dn,SunFun(10); SunFun(int n) int x,s=0;for(x=0;xn;x+)s+=F( 【 】);return
11、 s;F(int x) return( 【 】);31. 以下程序的运行结果为【 】。main() static int number6=1,2,3,4,5,6;int m=4,j;move(number,6,m);for (j=0;i5;j+)printf(%d,numberj);printf(%d,number5);move(array,n,m)int n,m,array6; int *p,array_end;array_end=*(array+n-1);for(p=array+n-1;parray;p-)*p=*(p-1);*array=array_end;m-;if(m0)move(a
12、rray,n,m);32. 以下程序的运行结果是【 】。#includelong fib(int g) switch(g) case 0:return 0;case 1:case 2:return 1; return(fib(g-1)+fib(g-2); main() long k;k=fib(5);printf(k=%5ldn,k);33. 函数pi的功能是根据以下近似公式求值:(*)/6=1+1/(2*2)+1/(3*3)+1(n*n)现在请你在下面的函数中填空,完成求的功能。#include math.h double s=0.0; long i;for(i=1;i=n; i+)s=s+
13、【 】;return(sqrt(6*3);34. 若a=1,b=2,则表达式!(x=A) (y=B) &0的值是_。35. 设有char a,b;,若要通过a&b运算屏蔽掉a中的其他位,只保留第2位和笫8位(右起为第1位),则b的二进制是【 】。36. 若有以下定义:char a;int b;float c;double d;则表达式a*b+d-c值的类型为【 】。37. 语句:x+;、+x;、xx+1;、x=1+x;,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)【 】。38. Jackson方法是一种面向【 】的结构化方法。39. 下列程序输出的结果是_。in