二级C语言分类模拟题544 (总分60.5,考试时间90分钟)
选择题
1. 若变量已正确定义,有以下程序段 i=0;
do printf(\"%d,\ printf(\"%d\\n\
其输出结果是______。 A. 0,1 B. 0,0 C. 1,1 D. 程序进入无限循环 2. 有以下程序
#include <stdio.h>
int fun(int (*s)[4],int n,int k) { int m,i; m=s[0][k];
for(i=1;i<n:i++) if(s[i][k]>m) m=s[i][k]; return m; }
main()
{ int a[4][4]={{1,2,3,4}, {11,12,13,14}, {21,22,23,24}, {31,32,33,34}};
printf(\"%d\\n\ }
程序的运行结果是______。 A. 31 B. 34 C. 4 D. 32 3. 有如下程序段: int x=12;
double y=3.141593; printf(\"%d%8.6f\ 其输出结果是______。 A. 123.141593 B. 12 3.141593
C. 12,3.141593 D. 123.1415930
4. 在数据库管理技术的发展中,数据独立性最高的是______。 A. 人工管理 B. 文件系统 C. 数据库系统 D. 数据模型
5. C语言中允许用外部说明来指定变量、函数和其他标识符的特征,这里所说的外部指的是______。
A. 冠以关键字extern B. 位置在函数体外部 C. 作用范围是全程的 D. 位置在函数的外部 6. 假设有语句sizeof(double),则它是______。 A. 一个整型表达式 B. 一个双精度浮点型表达式 C. 一种函数调用 D. 一种函数定义 7. 有以下程序: #include<stdio.h> main() {
int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i; for(i=0;i<12;i++) c[s[i]]++;
for(i=1;i<5;i++) printf(\"%d\ printf(\"\\n\"); }
程序的运行结果是______。 A. 2 3 4 4 B. 4 3 3 2 C. 1 2 3 4 D. 1 1 2 3
8. 下列选项中不属于结构化程序设计方法的是____。 A. 自顶向下 B. 逐步求精 C. 模块化 D. 可复用
9. 在关系数据库模型中,通常可以把( )称为属性,其值称为属性值。 A. 记录 B. 基本表 C. 模式 D. 字段
10. 下列程序的运行结果是______。 #include<stdio.h> void sub(int*s,int*y) { static int m=4; *y=s[m]; m--; }
void main()
{int a[]={1,2,3,4,5},k; int x;
printf(\"\\n\");
for(k=0;k<=4;k++) {sub(a,&x);
printf(\"%d,\ } }
A. 5,4,3,2,1 B. 1,2,3,4,5 C. 0,0,0,0,0 D. 4,4,4,4,4
11. 有一堆零件(个数在100到200之间),如果分成4个零件一组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。下面的程序是求这堆零件的总数,请选择填空。 #include<stdio.h> main() { int i;
for(i=100; i<200;i++) if((i-2)%4==0) if(! ((i-3)%7))
if(____) printf(\"%d\",i); }
A. i%9=5 B. i%9!=5 C. (i-5)%9!=0 D. (i-5)%9= =0 12. 下列叙述中错误的是______。
A. 用户定义的函数中可以没有return语句
B. 用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值 C. 用户定义的函数中若没有return语句,则应当定义函数为void类型 D. 函数的return语句中可以没有表达式 13. 以下程序运行后的输出结果是 #include<stdio.h> int f(int n); main()
{ int a=3, s;
s=f(a); s=s+f(a); printf(\"%d\\n\ }
int f(int n)
{ static int a=1; n+=a++; return n; } A. 7 B. 8 C. 9 D. 10 14. 设有定义: int x=0, *p;
紧接着的赋值语句正确的是______。 A. *p=x; B. *p=NULL; C. p=x; D. p=NULL;
15. 下列选项中非法的字符常量是____。 A. \"\\" B. \"\\039\"
C. \ D. \"\\n\" 16. 设有如下函数定义 #include<stdio.h> int fun(int k)
{if(k<1)return 0; else if(k==1) return 1; else return fun(k-1)+1; }
若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是______。 A. 3 B. 2 C. 4 D. 5
17. 以下程序不用第3个变量,实现将两个数进行对调的操作,请填空。 #include <stdio.h> main() { int a, b;
scanf(\"% d% d\ printf(\"a=% db=% d\ a=a+b; b=a-b; a=______; printf(\"a=% db=% d\\n\ }
A. a+b B. a-b C. b*a D. a/b 18. 有以下程序: #include<stdio.h> void fun(int a[], int n) {int i, t;
for(i=0; i<n/2; i++) {t=a[i]; a[i]=a[n-1-i]; n[n-1-i]=t;} }
main()
{int k[10]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, i; fun(k, 5);
for(i=2;i<8;i++)printf(\"%d\ printf(\"\\n\"); }
程序运行后的输出结果是______。 A. 321678 B. 876543 C. 1098765 D. 345678 19. 有如下程序: #include <stdio.h> main() {
int x=0x13;
printf(\"%d\\n\ }
程序运行后的输出结果是______。 A. 12 B. 14 C. 20 D. 13
20. 若变量已正确定义并赋值,符合C语言语法的表达式是 A. a=a+7; B. a=7+b+c,a++ C. int(12.3%4) D. a=a+7=c+b
21. if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是______。 A. 必须是正数 B. 必须是整数值 C. 可以是任意合法的数值 D. 必须是逻辑值 22. 不合法的main函数命令行参数表示形式是 ____ A. main(int a, char *c[]) B. main(int arc,char **arv) C. main(int argc,char *argv) D. main(int argv,char*argc[]) 23. SQL语言又称为______。 A. 结构化定义语言 B. 结构化控制语言 C. 结构化查询语言 D. 结构化操纵语言
24. 以下数据库除 ______外,均为严格意义上的DBMS系统。 A. Oracle B. Access C. Sybase的PowerBuilder D. SQL Server 25. 有以下程序: # include<stdio.h> # include<string.h> struct A
{ int a;char b[10]; double c;}; struct A f(struct A t); main()
{ struct A a={1001,\"ZhangDa\ a=f(a); printf(\"%d,%s,%6.1f\\n\ }
struct A f(struct A t)
{ t.a=1002; strcpy(t.b,\"ChangRong\");t.c=1202.0;return t;} 程序运行后的输出结果是______。 A. 1001,ZhangDa,1098.0 B. 1002,ZhangDa,1202.0 C. 1001,ChangRong,1098.0 D. 1002,ChangRong,1202.0
26. 在C语言中,只有在使用时才占用内存单元的变量,其存储类型是______。 A. auto和static B. extern和register C. auto和register D. static和register 27. 有以下程序: #include<stdio.h>
void fun(int a[],int n,int flag) { int i=0,j,t;
for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(flag)
{ if(a[i]<a[j])
{ t=a[i];a[i]=a[j];a[j]=t;} } else
{ if(a[i]>a[j])
{ t=a[i];a[i]=a[j];a[j]=t;} } }
main()
{ int c[10]={7,9,10,8,3,5,1,6,2,4},i; fun(c,4,1); fun(c+4,6,0);
for(i=0;i<10;i++)printf(\"%d,\ printf(\"\\n\"); }
程序运行后的输出结果是______。 A. 7,8,9,10,6,5,4,3,2,1, B. 10,9,8,7,6,5,4,3,2,1, C. 10,9,8,7,1,2,3,4,5,6, D. 1,2,3,4,5,6,7,8,9,10, 28. 有以下程序: matin()
{ char * s[]={\"one\ p=s[1];
printf(\"% c, % s\\n\ }
执行后的输出结果是______。 A. n, two B. t, one C. w, one D. o, two 29. 若有以下说明和定义: #include<stdio.h> main()
{ int(*a)(int*), *b(), w[10], c; }
int fun(int*c){…}
则以下选项中能正确调用fun函数是 A. a=fun; a(w); B. a=fun; (*a)(&c); C. b=fun; *b(w); D. fun(b); 30. 有以下程序; main()
{ int y=3,x=3,z=1;
printf(\"%d %d\\n\",(++x,y++),z+2); }
执行后的输出结果是 ____ A. 3 4 B. 4 2 C. 4 3 D. 3 3
31. 下列数据模型中,具有坚实理论基础的是 A. 层次模型 B. 网状模型 C. 关系模型 D. 以上3个都是 32. 若有定义语句: char*s1=\"OK\
以下选项中,能够输出“OK”的语句是______。 A. if(strcmp(s1,s2)!=0)puts(s2); B. if(strcmp(s1,s2)!=0)puts(s1); C. if(strcmp(s1,s2)==1)puts(s1); D. if(strcmp(s1,s2)==0)puts(s1); 33. 以下叙述中正确的是______。
A. 结构体数组名不能作为实参传给函数 B. 结构体变量的地址不能作为实参传给函数 C. 结构体中可以含有指向本结构体的指针成员
D. 即使是同类型的结构体变量,也不能进行整体赋值 34. 以下关于宏的叙述中正确的是______。 A. 宏替换没有数据类型限制 B. 宏定义必须位于源程序中所有语句之前 C. 宏名必须用大写字母表示 D. 宏调用比函数调用耗费时间 35. 有以下程序 #include<stdio.h> main()
{int a=1,b=0;
printf(\"%d,\ printf(\"%d\\n\ }
程序运行后的输出结果是______。 A. 1,2 B. 1,0 C. 3,2 D. 0,0
36. 若有定义语句:int x=10;,则表达式x-=x+x的值为______。 A. 0 B. -20 C. -10 D. 10 37. 有以下程序 #include<stdio.h> main()
{ int x[3][2]={0}, i;
for(i=0; i<3; i++)scanf(\"%d\
printf(\"%3d%3d%3d\\n\ }
若运行时输入:2 4 6<回车>,则输出结果为______。
A. 2 0 4 B. 2 0 0 C. 2 4 0 D. 2 4 6
38. 表达式\"5\"-\"1\"的值是____。 A. 整数4 B. 字符4 C. 表达式不合法 D. 字符6 39. 以下叙述中正确的是______。
A. C程序书写格式严格,要求一行内只能写一个语句 B. C程序书写格式自由,一个语句可以写在多行上
C. C程序中的注释只能出现在程序的开始位置和语句的后面 D. 用C语言编写的程序只能放在一个程序文件中 40. 有以下程序: #include<stdio.h> main()
{ int m=1,n=2,*p=&m,*q=&n,*r; r=p;p=q;q=r;
printf(\"%d,%d,%d,%d\\n\ }
程序运行后的输出结果是______。 A. 2,1,1,2 B. 1,2,1,2 C. 2,1,2,1 D. 1,2,2,1
因篇幅问题不能全部显示,请点此查看更多更全内容