3月二级C语言笔试真题

时间:2021-03-18 08:50:36 综合指导 我要投稿

2010年3月二级C语言笔试真题

  2010年3月二级C语言笔试真题

2010年3月二级C语言笔试真题

  (考试时间:120分钟,满分100分)

  (1)下列叙述中正确的是

  A)对长度为n的有序链表进行查找,最坏清况下需要的比较次数为n

  B)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2) C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n) D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n) (2)算法的时间复杂度是指 A)算法的执行时间 B)算法所处理的数据量 C)算法程序中的语句或指令条数 D)算法在执行过程中所需要的基本运算次数 (3)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。

  A)编辑软件 B)操作系统 C)教务管理系统 D)浏览器 则由关系K得到关系T的操作是 (4)软件(程序)调试的任务是 A)选择 A)诊断和改正程序中的错误 B)投影 B)尽可能多地发现程序中的错误 C)交 C)发现并改正程序中的所有错误 D)并 D)确定程序中错误的性质

  (11)以下叙述正确的是 (5)数据流程图(DFD图)是 A)C语言程序是由过程和函数组成的 A)软件概要设计的工具 B)C语言函数可以嵌套调用,例如:fun(fun(x)) B)软件详细设计的工具 C)C语言函数不可以单独编译 C)结构化方法的需求分析工具 D)C语言中除了main函数,其他函数不可作为单独文件形式存在 D)面向对象方法的需求分析工具 (12)以下关于C语言的叙述中正确的是 6)软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于 A)C语言中的注释不可以夹在变量名或关键字的中间 A)定义阶段 B)C语言中的变量可以在使用之前的任何位置进行定义 B)开发阶段 C)在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致 C)维护阶段 D)C语言的数值常量中夹带空格不影响常量值的正确表示 D)上述三个阶段

  第1页,共7页

  (7)数据库管理系统中负责数据模式定义的语言是 A)数据定义语言 B)数据管理语言 C)数据操纵语言 D)数据控制语言

  (8)在学生管理的关系数据库中,存取一个学生信息的数据单位是 A)文件 B)数据库 C)字段 D)记录 (9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的 A)需求分析阶段 B)逻辑设计阶段 C)概念设计阶段 D)物理设计阶段

  (10)有两个关系R和T如下:

  (13)以下C语言用户标识符中,不合法的是 (18)以下选项中与if(a==1)a=b; else a++;语句功能不同的switch语句是

  A)_1 A)switch(a)

  B)AaBc {case:a=b;break;

  C)a_b default:a++; D)a-b }

  (14)若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是 B)switch(a==1)

  A)a=a++,i++; {case 0:a=b;break; B)i=(a+k)<=(i+k); case 1:a++;

  C)i=a%11; }

  D)i=!a; C)switch(a) (15)有以下程序 {default:a++;break; #includecase 1:a=b; main() } { char a,b,c,d; D)switch(a==1) scanf(“%c%c”,&a,&b); {case 1:a=b;break; c=get); d=get); case 0:a++; printf(“%c%c%c%c\n”,a,b,c,d); } (19)有如下嵌套的if语句 }

  当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意: if (ac)?b:c); C)k=(a

  34 D)k=(a B)若要保存带有多位小数的数据,应使用双精度类型 main() C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型 {in i,j,m=1; D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型 for(i=1;i<3;i++) (17)若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是 {for(j=3;j>O;j--) A)1 {if(i*j)>3)break; B)0 m=i*j; C)2 } D)不知道a的值,不能确定 } 第2页,共7页

  printf("m=%d\n",m); }

  程序运行后的输出结果是

  A)m=6

  B)m=2

  C)m=4

  D)m=5 (21)有以下程序

  C)定义成void类型的函数中可以有带返回值的return语句

  D)没有return语句的自定义函数在执行结束时不能返回到调用处 (25)下列选项中,能正确定义数组的语句是 A)int num[0..2008]; B)int num[]; C)int N=2008; int num[N];

  D)#define N 2008 #include(stdio.h>

  main() {int a=l;b=2;

  for(;a<8;a++) {b+=a;a+=2;} printf("%d,%d\n",a,b); } 程序运行后的输出结果是 A)9,18 B)8,11 C)7,11

  D)10,14 (22)有以下程序,其中k的初值为八进制数 #includemain() {int k=011; printf("%d\n",k++); } 程序运行后的输出结果是 A)12 B)11

  C)10 D)9 23)下列语句组中,正确的是 A)char *s;s="Olympic"; B)char s[7];s="Olympic"; C)char *s;s={"Olympic"}; D)char s[7];s={"Olympic"}; (24)以下关于return语句的叙述中正确的是 A)一个自定义函数中必须有一条return语句 B)一个自定义函数中可以根据不同情况设置多条return语句 int num[N];

  (26)有以下程序 #include

  void fun(char *c,int d) {*c=*c+1;d=d+1;

  printf("%c,%c,",*c,d); main()

  {char b=a,a=A;

  fun(&b,a);printf("%e,%e\n",b,a); }

  程序运行后的输出结果是 A)b,B,b,A B)b,B,B,A C)a,B,B,a D)a,B,a,B

  (27)若有定义int(*Pt)[3];,则下列说法正确的是 A)定义了基类型为int的三个指针变量

  B)定义了基类型为int的具有三个元素的指针数组pt C)定义了一个名为*pt、具有三个元素的整型数组

  D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组

  (28)设有定义double a[10],*s=a;,以下能够代表数组元素a[3]的是 A)(*s)[3] B)*(s+3) C)*s[3] D)*s+3

  (29)有以下程序 #include(stdio.h) main()

  {int a[5]={1,2,3,4,5},b[5]={O,2,1,3,0},i,s=0; for(i=0;i<5;i++) s=s+a[b[i]]);

  第3页,共7页

  printf("%d\n", s); }

  程序运行后的输出结果是

  A)6

  B)10

  C)11

  D)15 (30)有以下程序

  }

  程序运行后的输出结果是 A)1313 B)2234 C)3234 D)1234

  (33)有以下程序 #include#include

  main() {int b [3][3]={O,1,2,0,1,2,O,1,2},i,j,t=1;

  for(i=0;i<3;i++) for(j=ij<=1;j++) t+=b[i][b[j][i]]; printf("%d\n",t); } 程序运行后的输出结果是 A)1 B)3

  C)4 D)9 31)若有以下定义和语句 char s1[10]="abcd!",*s2="\n123\\"; printf("%d %d\n", strlen(s1),strlen(s2)); 则输出结果是 A)5 5 B)10 5 C)10 7 D)5 8

  (32)有以下程序 #include#define N 8 void fun(int *x,int i) {*x=*(x+i);} main() {int a[N]={1,2,3,4,5,6,7,8},i; fun(a,2); for(i=O;i

  { int a[4]={1,2,3,4},s;

  s=f(a,4); printf("%d\n",s); }

  int f(int t[],int n)

  { if(n>0) return t[n-1]+f(t,n-1); else return 0; }

  程序运行后的输出结果是 A)4 B)1O C)14 D)6

  (34)有以下程序 #includeint fun() { static int x=1; x*2; return x; }

  main() {int i,s=1,

  for(i=1;i<=2;i++) s=fun(); printf("%d\n",s); }

  程序运行后的.输出结果是 A)O B)1 C)4 D)8

  (35)有以下程序 #include

  第4页,共7页

  #define SUB(a) (a)-(a) main()

  { int a=2,b=3,c=5,d;

  d=SUB(a+b)*c;

  printf("%d\n",d);

  }

  程序运行后的输出结果是 A)0

  {int day; int month; int year;} s; };

  struct workers w,*pw; pw=&w;

  能给w中year成员赋1980的语句是 A)*pw.year=198O; B)w.year=1980; C)pw->year=1980; B)-12

  C)-20 D)10

  (36)设有定义: struct complex { int real,unreal;} data1={1,8},data2; 则以下赋值语句中错误的是 A)data2=data1; B)data2=(2,6); C)data2.real=data1.real;

  D)data2.real=data1.unreal; 37)有以下程序 #include#includestruct A { int a; char b[10]; double c;}; void f(struct A t); main() { struct A a={1001,"ZhangDa",1098.0}; f(a); printf("%d,%s,%6.1f\n",a.a,a.b,a.c);

  } void f(struct A t) { t.a=1002; strcpy(t.b,"ChangRong");t.c=1202.0;} 程序运行后的输出结果是 A)1001,zhangDa,1098.0 B)1002,changRong,1202.0 C)1001,ehangRong,1098.O D)1002,ZhangDa,1202.0 (38)有以下定义和语句 struct workers { int num;char name[20];char c; struct D)w.s.year=1980; (39)有以下程序 #includemain()

  { int a=2,b=2,c=2;

  printf("%d\n",a/b&c); }

  程序运行后的输出结果是 A)O B)1 C)2 D)3

  (40)有以下程序 #includemain()

  { FILE *fp;char str[10];

  fp=fopen("myfile.dat","w"); fputs("abc",fp);fclose(fp); fpfopen("myfile.data","a++"); fprintf(fp,"%d",28); rewind(fp);

  fscanf(fp,"%s",str); puts(str); fclose(fp); }

  程序运行后的输出结果是 A)abc B) 28c C) abc28

  D)因类型不一致而出错

  第5页,共7页

  else if(c!=3) d=3;

  else d=4;

  (1)一个队列的初始状态为空。现将元素A,B,C,D,E,F,5,4,3,2, else d=5; 【1】 。 printf(“%d\n”,d);

  (2)设某循环队列的容量为50,如果头指针front=45(指向队头元素的前一位 }

  rear=10(指向队尾元素),则该循环队列中共有 【2】 个元素。 程序运行后的输出结果是 【7】 。

  (3)设二叉树如下: (8)有以下程序

  #include

  main()

  { int m,n;

  scanf("%d%d",&m,&n); while(m!=n) { while(m>n) m=m-n; while(m

  printf(“%d\n”,m); }

  程序运行后,当输入14 63 <回车> 时,输出结果是(9)有以下程序

  #includemain()

  { int i,j,a[][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) for(j=i;j<3;j++) printf(“%d%,a[i][j]); 对该二叉树进行后序遍历的结果为 【3】 。 printf("\n"); (4)软件是 【4】 、数据和文档的集合。 }

  5)有一个学生选课的关系,其中学生的关系模式为:学生(学号,姓名,班级, 程序运行后的输出结果是 【9】 。 (10)有以下程序 【5】 ,成绩)。 #include(6)设x为int型变量,请写出一个关系表达式 【6】 ,用以判断x同时为 main()

  7的倍数时,关系表达式的值为真。 { int a[]={1,2,3,4,5,6},*k[3],i=0; (7)有以下程序 while(i<3) #include { k[i]=&a[2*i]; main() printf("%d",*k[i]); { int a=1,b=2,c=3,d=0; i++;

  if(a==1) }

  if(b!=2) }

  if(c==3) d=1; 程序运行后的输出结果是 【10】 。 else d=2; (11)有以下程序 #include第6页,共7页

  8】 。 【

  main() (15)以下程序的功能是:借助指针变量找出数组元素中的最大值及其元素的 { int a[3][3]={{1,2,3},{4,5,6},{7,8,9}}; 下标值。请填空。

  int b[3]={0},i; #include

  for(i=0;i<3;i++) b[i]=a[i][2]+a[2][i]; main() for(i=0;i<3;i++) printf("%d",b[i]); { int a[10],*p,*s;

  printf("\n"); for(p=a;p-a<10;p++) scanf("%d",p);

  } for(p=a,s=a;p-a<10;p++) p="">*s) s= 【15】 ; 程序运行后的输出结果是 【11】 。 printf(“index=%d\n”,s-a);

  12)有以下程序

  #include

  #include

  void fun(char *str)

  { char temp;int n,i;

  n=strlen(str);

  temp=str[n-1];

  for(i=n-1;i>0;i--) str[i]=str[i-1];

  str[0]=temp;

  }

  main()

  { char s[50];

  scanf("%s",s); fun(s); printf("%s\n",s);}

  程序运行后输入:abcdef<回车>,则输出结果是 【12】 。

  (13)以下程序的功能是:将值为三位正整数的变量x中的数值按照个位、十

  #include

  main()

  { int x=256;

  printf("%d-%d-%d\n", 【13】 ,x/10%10,x/100);

  }

  (14)以下程序用以删除字符串所有的空格,请填空。

  #include

  main()

  { char s[100]={"Our teacher teach C language!"};int i,j;

  for(i=j=0;s[i]!=’\0’;i++)

  if(s[i]!= ) {s[j]=s[i];j++;}

  s[j]= 【14】

  printf(“%s\n”,s);

  }

  第7页,共7页

  }


【2010年3月二级C语言笔试真题】相关文章:

长沙银行笔试真题04-09

2017年c语言面试笔试题09-03

银行校招笔试真题练习03-29

2017邮政储蓄笔试真题和面经07-20

2017雅思笔试真题+答案(大陆卷)07-18

农信社、农商银行免笔试面试真题07-07

2017雅思笔试真题+答案(大陆卷+亚太卷)07-18

2017年福建农信社免笔试面试真题汇总07-11

中国工商银行笔试真题04-09

华为笔试网络题08-22