1、二级C语言模拟654二级C语言模拟654一、选择题1、以下选项中,与k=n+完全等价的表达式是_。 Ak=n, n=n+1 Bn=n+1, k=n Ck=+n Dk+=n+12、关于 Do循环体 while(条件表达式); 以下叙述中正确的是_。 A条件表达式的执行次数总是比循环体的执行次数多一次 B循环体的执行次数总是比条件表达式的执行次数多一次 C条件表达式的执行次数与循环体的执行次数一样 D条件表达式的执行次数与循环体的执行次数无关3、VC 6.0中int类型变量所占字节数是_。 A1 B2 C3 D44、 现有格式化输入语句,scanf(x=%d,sumy=%d, linez=%dL,
2、 x, y, z);,已知在输入数据后,x,y,z的值分别是23,56,78,则下列选项中正确地输入格式的是 注 表示空格,Enter表示回车 A. 23, 56, 78Enter B. x=23, y=56, z=78Enter C. x=23C, sumy=56, z=78Enter D. x=23, sumy=56, linez=78Enter5、有以下程序: #includestdio.h main() char ch=uvwxyz,*pc; pc=ch; printf(%cn,*(pc+5); 程序运行后的输出结果是_。 Az B0 C元素ch5的地址 D字符y的地址6、有以下程序:
3、 #include stdio.h main() char a 44=; int i,j; for(i=0;i4; i+) ai0=ai3=#; for(j=1; j3; j+) a0j=a 3j=#; if(i!=0)&(i! =3) aij=o; for(i=1;i3;i+) for(j=0; j4;j+) printf(%2c ,aij); printf(n); 程序的运行结果是_。 A#o o# #o o# B# # # # # o o # C# o o # # # # # D# # # # # # # #7、有以下程序段 #includestdio.h int j; float y;
4、 char name50; scanf(%2d%f%s,&j,&y,name); 当执行上述程序段,从键盘上输入55566 7777123后,y的值为_。 A566.0 B55566.0 C7777.0 D566777.08、下列选项中不是C语句的是_。 A int i; i+; printf(%dn, i); B; Ca=5,c=10 D;9、构成计算机软件的是_。 A源代码 B程序和数据 C程序和文档 D程序、数据及相关文档10、以下叙述中正确的是_。 A在scanf函数中的格式控制字符串是为了输入数据用的,不会输出到屏幕上 B在使用scanf函数输入整数或实数时,输入数据之间只能用空格来
5、分隔 C在printf函数中,各个输出项只能是变量 D使用printf函数无法输出百分号%11、有以下程序: #include stdio.h main( ) int a=3; a+=a-=a*a; printf(%dn,a); 程序的输出结果是_。 A0 B9 C3 D-1212、以下关于字符串处理的叙述正确的是_。 A进行字符串复制时,目的串的存储空间必须足够大 B两个字符串进行比较时,短的一个必定比长的一个小 C计算一个字符串的长度时,应包含串尾的结束标志 D两个字符串连接时,对存储空间的大小没有要求13、以下说法正确的是_。 AC程序是从第一个定义的函数开始执行的 B在C程序中,要调用
6、的函数必须在main()函数中定义 CC程序是从main()函数开始执行 DC程序中的main()函数必须放在程序的开始部分14、已知大写字母A的ASCII码是65,小写字母a的ASCII码是97。以下不能将变量c中的大写字母转换为对应小写字母的语句是_。 Ac=(A+c)%26-a Bc=c+32 Cc=c-A+a Dc=(c-A)%26+a15、有以下程序 #include stdio.h main() int i,s=0,t=1,2,3,4,5,6,7,8,9; for(i=0;i9;i+=2) s+=*(t+i); printf(%dn,s); 程序执行后的输出结果是_。 A25 B2
7、0 C45 D3616、以下选项中关于程序模块化的叙述错误的是_。 A把程序分成若干相对独立的模块,可便于编码和调试 B把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块 C可采用自低向上、逐步细化的设计方法把若干独立模块组装成所要求的程序 D可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序17、有以下程序: #includestdio.h main() unsigned char a=2, b=4, c=5, d; d=a | b;d&=c; printf(%dn,d); 程序运行后的输出结果是_。 A3 B4 C5 D618、某二叉树共有12个节点,其中叶子节
8、点只有1个,则该二叉树的深度为(根节点在第l层)_。 A3 B6 C8 D1219、关系数据库规范化主要为克服数据库逻辑结构中的插入异常、删除异常以及_。 A数据丢失的问题 B结构不合理的问题 C数据不一致的问题 D冗余度大的问题20、有以下程序: #includestdio.h #includestdlib.h int fun(int n) int *p; p=(int *)malloc(sizeof(int); *p=n; return *p; main() int a; a=fun(10); printf(%dn, a+fun(10); 程序的运行结果是_。 A10 B20 C0 D出错
9、21、以下叙述中错误的是_。 Agets函数用于从终端读入字符串 Bgetchar函数用于从磁盘文件读入字符 Cfputs函数用于把字符串输出到文件 Dfwrite函数用于以二进制形式输出数据到文件22、已知函数的调用形式:fread(buffer,size,count,fp);,其中buffer代表的是_。 A一个整型变量,代表要读入的数据项总数 B一个文件指针,指向要读的文件 C一个指针,是指向的输入数据放在内存中的起始位置 D一个存储区,存放要读的数据项23、有两个关系R和T如下: RABCa12b44c23d32 TACa2b4c3d2 则由关系R得到关系T的操作是_。 A选择 B交
10、C投影 D并24、若有以下程序段,w和k都是整型变量: w=k; LB:if(w=0)go to LE; w-; printf(*) goto LB; LE; 则不能与上面程序段等价的循环语句是_。 Afor(w=k; w!=0; w-)printf(*); Bfor(w=k; w; -w)printf(*); Cw=k; while(w-!=0)printf(*); Dw=k; w+; dow-; printf(*); while(w!=0);25、以下定义数组的语句中错误的是_。 Aint num=1, 2, 3, 4, 5, 6; Bint num3=1, 2, 3, 4, 5, 6;
11、Cint num24=1, 2, 3, 4, 5, 6; Dint num4=1, 2, 3, 4, 5, 6;26、有以下程序 #includestdio.h int fun(int x, int y) if(x!=y)return(x+y)/2); else return(x); main() int a=4, b=5, c=6; printf(%dn, fun(2*a, fun(b, c); 程序运行后的输出结果是_。 A6 B3 C8 D1227、下列语句组中,正确的是_。 Achar*s;s=Olympic; Bchar s7;s=Olympic; Cchar*s;s=Olympic
12、; Dchar s7;s=Olympic;28、以下所列对结构类型变量tdl的声明中错误的是_。 Atypedef struct aa int n;float m;AA; B#define AA struct aa AAint n;float m;)tdl; AAtdl; Cstruct int n; float m;)aa; Dstruct int n;float m;tdl; struct aa tdl;29、以下程序运行后的输出结果是_。 #includestdjo.h void reverse(int a,int n) int i,t; for(i=0;in/2;i+) t=ai;ai
13、=an-1-i;an-1-i=t; mam() int b10=10,9,8,7,6,5,4,3,2,1);int i,s=0; reverse(b,10); for(i=0;i3;i+) s+=bi; printf(%dn,s); A27 B6 C25 D3030、下列选项中,由C语言提供的合法关键字的是_。 Aswicth Bcher Cdefault DCase31、有以下程序段: int x; for(x=3; x6; x+) printf(x%2)?(*%d): (#%dn), x); 程序段的输出结果是 A*3 #4 *5 B#3 *4 #5 C#3 *4#5 . D*3#4 *5
14、32、以下fun函数返回数组中最大值的下标: #includestdio.h int fun(int*s,int n) int i,k; for(i=0,k=i;in;i+) if(sisk)_; return(k); 在横线处应填入的内容是_。 A+k Bi=k Ck+ Dk=i33、有以下程序: #includestdio.h struct tt int x;struct tt *y; s3=1,0,2,0,3,0; main() struct tt *p=s+1; p-y=s; printf(%d,p-x); p=p-y; printf(%dn,p-x); 程序运行后的输出结果是_。 A
15、2,3 B2,1 C1,2 D3,134、若有定义语句: int b=2; 则表达式(b2)/(3 | b)的值是_。 A0 B2 C4 D835、有以下程序: #includestdio.h main() int i=3, j=5, *p=&i, *q=&j, *r; r=&q; printf(%d, %d, %d, %d, %dn, i, j, *p, *q, *r); 执行后的输出结果是_。 A3,5,3,5,5 B5,3,5,3,5 C3,5,3,5,3 D3,5,3,3,536、数据库技术的根本目标是要解决数据的_。 A存储问题 B共享问题 C安全问题 D保护问题37、有以下程序:
16、matin() char * s=one, two, three, *p; p=s1; printf(% c, % sn, *(p+1),so); 执行后的输出结果是_。 A. n, two B. t, one C. w, one D. o, two38、下列关于C语言数据文件的叙述中正确的是_。 A文件由ASCII码字符序列组成,C语言只能读写文本文件 B文件由二进制数据序列组成,C语言只能读写二进制文件 C文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件 D文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件39、已知某程序中有声明“int a4,j;”及语句“f
17、or(j=0;j4;j+)pj=a+j;”,则标识符P正确的声明形式应为_。 Aint p4; Bint*p4; Cint*p4; Dint(*p)4;40、有以下程序: #includestdio.h main() int a=1,b=2,c=3; char flag; flag=b=2 & c=3; switch(a) case 1:switch(flag) case 0: printf(*);break; case 1: printf(%);break; case 0: switch(c) case 1: printf($);break; case 2: printf(&);break;
18、 default: printf(#); printf(n); 程序运行后的输出结果是_。 A*$ B%# C%& D*#二、程序填空题41、给定程序中,函数fun()的功能是:把形参s所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度大于等于2)。 例如,形参s所指的字符串为:abcdefgh,执行结果为:ahcbedgf。 注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在fun()函数的横线上填入所编写的若干表达式或语句。 试题程序: #includestdio.h voi
19、d fun(char*s) int i,n,k; char c; n=0; for(i=0;si!=0;i+) n+; if(n%2=0) k=n-_; else k=n-_; c=sk; for(i=k-2;i=1;i=i-2) si+2=si; s1=_; void main() char s80=abcdefgh; printf(nThe original string is:%sn,s); fun (s); printf(nThe result is:%sn,s); 三、程序修改题42、下列给定程序中函数fun的功能是:将m(1m10)个字符串连接起来,组成一个新串,放入pt所指存储区
20、中。例如:把三个串“abe”、“CD”、“EF”连接起来,结果是“abcCDEF”。请改正程序中的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题源程序 #includestdio.h #includestring.h void fun(char str10,int m,char*pt) /*found*/ Int k,q,i; for(k=0;km;k+) q=strlen(strk); for(i=0;iq;i+) /*found*/ pti=strk,i; pt+=q; pt0=0; main() int m,h; char s10
21、10,p120; printf(Please enter m:); scanf(%d,&m);gets(s0); printf(Please enter%d string:,m); for(h=0;hm;h+)gets(sh); fun(s,m,p); printf(The result is:%s,p); 四、程序设计题43、假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其它*号全部删除。在编写函数时,不得使用C语言提供的字符串函数。函数fun中给出的语句仅供参考。 例如,字符串中的内容为:*A*BC*DEF*G*,删除后字符串中的内容应当
22、是:*ABCDEFG。 注意:部分源程序在文件PROG1. C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include stdio. h void fun(char *a) /*以下代码仅供参考*/ int i=0, k; while(ai=*) i+; k=i; while(ai!=0)/*以下程序段实现非*字符前移*/ ak=0; main( ) char s81; void NONO( ); printf(*Enter a string: n); gets(s); fun(s); printf(The string after deleted: n); puts(s); NONO( ); void NONO( ). /*本函数用于打开文件,输入数据
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1