Dotcpp  >  试卷列表  >  全国计算机等级考试《二级C语言程序设计》模拟试题(十)

全国计算机等级考试《二级C语言程序设计》模拟试题(十)


第1题

结构化程序设计主要强调的是(  )。

共 1 分 

第2题

为了使模块尽可能独立,要求(  )。

共 1 分 

第3题

设某二叉树的后序序列为CBA,中序序列为ABC,则该二叉树的前 序序列为(  )。

共 1 分 

第4题

结构化程序的三种基本控制结构是(   )。

共 1 分 

第5题

在结构化方法中,软件功能分解属于下列软件开发中的(  )阶段。

共 1 分 

第6题

下面描述不属于软件特点的是(  )。

共 1 分 

第7题

程序测试的目的是(   )。

共 1 分 

第8题

关系数据库管理系统所管理的关系是(  )。

共 1 分 

第9题

在数据库中,数据模型包括数据结构、数据操作和( )。

共 1 分 

第10题

设有如下三个关系表:

R、S、T关系表

下列操作中正确的是(  )。

共 1 分 

第11题

以下选项中合法的标识符是()。

共 1 分 

第12题

以下叙述中错误的是(  )。

共 1 分 

第13题

若有定义:

1
int a=0,b=0,c=0,d=0;

有C语言表达式 (a++ && b++)? c++ : d++,以下关于其执行顺序的叙述 正确是(  )。

共 1 分 

第14题

设有两行定义语句:

1
2
int scanf;
 float case;

则以下叙述正确的是(  )。

共 1 分 

第15题

关于C语言标识符,以下叙述错误的是( )。

共 1 分 

第16题

若有C语言表达式 2+3*4+7/3,以下选项中叙述正确的执行顺序是 (  )。

共 1 分 

第17题

若有定义:

1
char c;int d;

程序运行时输入:c=1,d=2<回车>,能把字 符1输入给变量c、整数2输入给变量d的输入语句是(  )。

共 1 分 

第18题

若有定义:

1
int a; float b;double c;

程序运行时输入:1,2,3<回车 >,能把1输入给变量a、2输入给变量b、3输入给变量c的输入语句是 (  )。

共 1 分 

第19题

有以下程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
main()
{
 int a,b;
 for(a=0; a<3; a++) 
 {
 scanf("%d", &b);
 switch(b)
 {
 defaultprintf("%d,", ++b);
 case 1: printf("%d,", ++b);
 case 2: printf("%d,", ++b);
 }
 }
}

执行时输入:1 2 3 <回车>,则输出结果是( )。 

共 1 分 

第20题

对于if(表达式)语句,以下叙述正确的是(   )。

共 1 分 

第21题

有以下程序

1
2
3
4
5
6
7
#include <stdio.h>
main()
 {
 int a=-1, b=-1;
 for(; ++a;)++b;
 printf("%d,%d\n", a, b);
}

程序运行后的输出结果是(  )。

共 1 分 

第22题

有以下程序

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
main()
 {
 int a=1, b=0;
 for(; a<5;a++)
 {
 if(a%2 == 0)break;
 continue;
 b += a;
 }
 printf("%d \n",b);
 }

程序运行后的输出结果是(  )。

共 1 分 

第23题

要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是()。

共 1 分 

第24题

以下叙述中正确的是(  )。 

共 1 分 

第25题

以下叙述中正确的是(  )。 

共 1 分 

第26题

设有定义:

1
char p[]={'1','2','3'},*q=p;

以下不能计算出一个char型 数据所占字节数的表达式是(  )。

共 1 分 

第27题

以下叙述中正确的是(  )。 

共 1 分 

第28题

有以下程序

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
int k=5;
 void f(int *s)
 {
 s=&k;
 }
 main()
 {
 int m=3,*p=&m;  
f(p);
 printf("%d,%d\n",m,*p); 
}

程序的运行结果是(  )。

共 1 分 

第29题

以下叙述中正确的是(  )。 

共 1 分 

第30题

有以下程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
int m1(int x,int y)
 {
 return x<=y ? x :y;
 
int m2(int x,int y)
 {
 return x<=y ? y :x;
 
int fun(int a,int b)
 {
 return a+b;
 }
 main()
 {
 int x=2,y=3,z=1;
 printf("%d\n", fun(m1(x,y),m2(y,z)));  
}

程序的运行结果是(  )。

共 1 分 

第31题

若有定义:

1
char s[30] = {0};

运行时输入: This is a string.<回车> 则以下不能正确读入整个字符串: This is a string. 到字符数组 s 中的语句组是(  )。

共 1 分 

第32题

关于地址和指针,以下说法正确的是( )。

共 1 分 

第33题

若有以下程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
void sp(int *a)
 {
 int b=2;
 *a = *a * 2;
 printf("%d,",*a); 
a=&b;
 *a = *a * 2;
 printf("%d,",*a); 
}
 main()
 {
 int k=3;
 sp(&k);
 printf("%d\n",k); 
}

则程序的输出结果是(  )。

共 1 分 

第34题

有以下程序:

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
int *f(int *s,int *t)
 {
 if(*s < *t)s=t;
 return s;
 }
 main()
 
int i=3,j=5,*p=&i,*q=&j,*r;
 r=f(p,q);
 printf("%d,%d,%d,%d,%d\n",i,j,*p,*q,*r);
 }

程序的运行结果是(  )。

共 1 分 

第35题

若有定义:char*ps[]={"aa","bb","cc","dd"};,则以下叙述正确的()。

共 1 分 

第36题

以下叙述中正确的是(  )。

共 1 分 

第37题

若要使用C数学库中的sin函数,需要在源程序的头部加上 #include关于引用数学库,以下叙述正确的是(  )。

共 1 分 

第38题

有以下程序

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
main()
 {
 int i;
 FILE* fp;
 for (i=0; i<3;i++)
 {
 fp = fopen("res.txt""w");
 fputc('K'+ i, fp);
 fclose(fp);
 }
 }

程序运行后,在当前目录下会生成一个res.txt文件,其内容是 (  )。

共 1 分 

第39题

以下叙述中错误的是(  )。

共 1 分 

第40题

下面结构体的定义语句中,错误的是(  )。

共 1 分 

第41题

人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。函数fun的功能是:找出指定编号人员的数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/**********code.c**********/
 #include <stdio.h>
 #include <string.h>
#define N 8
 typedef struct
 {  
char num[10];
 int year,month,day;
 }STU;
 /**********found**********/
 ①______ fun(STU *std,char *num)
 {
 int i;
 STU a={"",9999,99,99};
 for (i=0; i<N; i++)
 /**********found**********/
 if(strcmp(②______,num)==0)
 /**********found**********/
 return (③______);
 return a;
 }
 void main()
 
STU std[N]={{"111111",1984,2,15}, {"222222",1983,9,21},
 {"333333",1984,9,1}, {"444444",1983,7,15}, {"555555",1984,9,28},
 {"666666",1983,11,15}, {"777777",1983,6,22}, {"888888",1984,8,19}};
 STU p;   
char n[10]="666666";
 p=fun(std,n);
 if(p.num[0]==0)
 printf("\nNot found !\n");
 else
 {  
printf("\nSucceed !\n  ");
 printf("%s  %d-%d-%d\n", p.num, p.year, p.month, p.day);
 }
 }
 /**********-code.c**********/
共 20 分 

第42题

给定程序MODI1.C中函数fun的功能是:从s所指字符串中,找出与t 所指字符串相同的子串的个数作为函数值返回。 例如,当s所指字符串中的内容为:“abcdabfab”,t所指字符串的 内容为:“ab”,则函数返回整数3。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的 结构!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/**********code.c**********/
#include <stdio.h>
#include <string.h>
int fun (char *s, char *t)
 {
 int n;
 char *p,*r;
 n = 0;
 while(*s)
 {
 p = s;
 r = t;
 while (*r)
   if(*r == *p)
   {
    /**********found**********/
    r++; p++
   }
   else break;
   /**********found**********/
   if(r == '\0')
    n++;
   s++;
 }
 return n;
 }
 void main()
 {
 char s[100],t[100];
 int m;
 printf("\nPlease enter string S:"); 
 scanf("%s", s);
 printf("\nPlease enter substring t:"); 
 scanf("%s", t);
 m = fun(s,t);
 printf("\nThe result is:  m = %d\n", m);
 }
 /**********-code.c**********/
共 40 分 

第43题

函数fun的功能是:将s所指字符串中ASCII值为偶数的字符删除, 串中剩余字符形成一个新串放在t所指的数组中。 例如,若s所指字符串中的内容为:“ABCDEFGl2345”,其中字符 B的ASCII码值为偶数、…、字符2的ASCII码值为偶数、…都应当删 除,其它依此类推。最后t所指的数组中的内容应是:“ACEG135”。 注意:部分源程序存在文件PROG1.c中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花 括号中填入你编写的若干语句。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/**********code.c**********/
#include <stdio.h>
#include <string.h>
void fun(char *s,char t[])
 {
 }
 void main()
 {
 char s[100],t[100];
 printf("\nPlease enter string S:");
 scanf("%s",s);
 fun(s,t);
 printf("\nThe result is: %s\n", t);
 }

参考答案:

1
2
3
4
5
6
7
8
void fun(char *s, char t[])
 {
 int i=0;
 for(;*s != '\0';s++)  /*找出ASCII值为奇数的字符依次存入数组t中*/
 if(*s%2==1)     
t[i++]=*s;
t[i]='\0';  /*在字符串的末尾加上串结束符*/
 }
共 0 分