今天给各位分享2015年c语言二级考试真题的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
1、四川C语言二级考试真题含答案2、计算机二级考试C语言选择题(2)3、四川省计算机二级C语言考试 真题4、c语言二级考试题及答案5、浙江省历届二级c语言真题及答案
四川C语言二级考试真题含答案
四川省普通高等学校计算机应用知识和能力
第二十九次等级考试
二级(C与C++语言) 笔 试 试 卷
时间: 2008年10月 18 日
上午 9:00—11:00
第一部分
软件技术基础
(共15分)
一、是非判断题(每小题1分,共10分)
( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B )
1. 在设备管理中通道是处理输入、输出的软件。 ( 1 )
2. 从逻辑上可以把数据结构分为线性结构和非线性结构。 ( 2 )
3. 若无进程处于运行状态,则就绪队列为空。 ( 3 )
4. 在单处理器系统中,程序的并发执行,实质上是程序的交替执行。 ( 4 )
5. 分页存储管理中,页面不能映射到不连续的内存块中。 ( 5 )
6. 瀑布模型的突出缺点是不适应用户需求的变化。 ( 6 )
7. 栈和队列的共同特点是允许在端点之外处插入和删除元素。 ( 7 )
8. 为了便于对照检查,测试用例应由输入数据和预期的输出结果两部分组成。 ( 8 )
9. 在软件生存期内,能确定软件系统必须做什么和必须具备的功能阶段是编码。 ( 9 )
10.在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表、判定树。 ( 10 )
二、选择题(每小题1分,共5分)
1. 软件开发中,模块设计的原则是( 11 ) 。
11 (A) 低偶合、高内聚 (B) 高偶合、高内聚
(C) 高偶合、低内聚 (D) 低偶合、低内聚
2. 进程从运行状态进入就绪状态的原因可能是( 12 )。
12 (A) 时间片用完 (B) 等待某一事件
(C) 等待的事件已发生 (D) 被选中占有处理机
3. 队列的操作原则是( 13 )。
13 (A) 先进后出 (B) 先进先出
(C) 只进不出 (D) 只出不进
4. 以下( 14 )不是实时操作系统的特点。
14 (A) 高可靠性 (B) 及时响应
(C) 高效性 (D) 通用性
5. 程序流程图是用于描述结构化方法中 ( 15 )工作阶段的工具。
15 (A) 可行性分析 (B) 程序编码
(C) 详细设计 (D) 需求分析
第二部分
C与C++语言程序设计
(共85分)
一、单项选择题 ( 每小题1分,共10分 )
1. 下列关于C++语言类的描述中错误的是( 16 ) 。
16 (A) 类用于描述事物的属性和对事物的操作
(B) 类与类之间通过封装而具有明确的独立性
(C) 类与类之间必须是平等的关系,而不能组成层次结构
(D) 类与类之间可以通过一些方法进行通信和联络
2. C++中,已知有如下定义:
const int D=5;
int i=1;
long int f=0;
char c=15;
则下列选项错误的是( 17 )。
17 (A) ++i; (B) D–; (C) c++; (D) –f;
3. 下面关于类和对象的描述中,错误的是 ( 18 )。
18 (A) 类就是C语言中的结构体类型,对象就是C语言中的结构体变量
(B) 类和对象之间的关系是抽象和具体的关系
(C) 对象是类的实例,一个对象必须属于一个已知的类
(D) 类是具有共同行为的若干对象的统一描述体
4. 设有定义:int n=0,*p=n,**q=p,则下列选项中正确的赋值语句是( 19 )。
19 (A) p=5; (B) *q=5; (C) q=p; (D) *p=5;
5. 设有定义:char s[20]= “ab\101\ncd”; 则sizeof(s)和strlen(s)的值为( 20 )。
20 (A) 6,6 (B) 20,6 (C) 20,7 (D) 20,10
6. 在C语言的函数中( 21 )。
21 (A) 必须有形参 (B) 形参必须是变量名
(C) 可以有也可以没有形参 (D) 数组名不能作为形参
7. 下列程序输出结果是( 22 )。
# include “stdio.h”
# define SQR(x) x*x
void main()
{ int a=10,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf(“%d\n”,a);
}
22 (A) 10 (B) 1 (C) 9 (D) 0
8. 已知学生记录描述如下
struct student
{ int no;
char name[20];
char sex;
struct
{ int year;
int month;
int day;
}birth;
};
struct student s;
设变量s中“生日”是“1982年5月29日”,对“生日”的正确赋值方式是( 23 )。
23 (A) year=1982;month=5;day=29;
(B) birth.year=1982;birth.month=5;birth.day=29;
(C) s.year=1982;s.month=5;s.day=29;
(D) s.birth.year=1982;s.birth.month=5;s.birth.day=29;
9. 有下列程序输出结果是 ( 24 )。
# include stdio.h
void dig(char *s)
{
char *p=s;
while(*s)
*s=’0′ *s=’9′?s++:(*p++=*s++);
*p=’\0′;
}
void main()
{
char *str=”A1B2C3″;
dig(str);
puts(str);
}
24 (A) ABC (B) A1B2C3 (C) A1B2C (D) ABC3
10. 在下面的选项中,赋值语句错误的是 ( 25 ) 。
25 (A) i++; (B) a=(b=(c=2,d=3));
(C) a=aa; (D) a=a*b=2;
二、读程序回答问题 ( 每个选择3分,共45分 )
1. 读下面程序并回答问题:
# include stdio.h
void fun1(int x,int y)
{
int t;
t=x; x=y; y=t;
}
void fun2(int x[])
{
int t;
t=x[0]; x[0]=x[1]; x[1]=t;
}
void main()
{
int a[2]={1,2},b[2]={1,2};
fun1(b[0],b[1]);fun2(a);
printf(“%d,%d,%d,%d\n”,a[0],a[1],b[0],b[1]);
}
(1) 下列说法错误的是( 26 )。
26 (A) 数组名作为函数参数进行传递,传递的是数组的首地址
(B) 数组名作为函数参数时,形参数组与实参数组共用内存空间
(C) 普通变量作为函数参数进行传递,实参与形参之间发生的是单向值传递
(D) 数组名作为函数参数时,传递的是数组元素的值
(2) 程序的运行结果是( 27 )。
27 (A)1,2,1,2 (B) 1,2,2,1 (C) 2,1,1,2 (D) 2,1,2,1
2. 读程序并回答问题。
# include stdio.h
int fun()
{
static int c=0;
c++;
return c;
}
void main(int argc,char *argv[])
{
int x,i,j;
for(i=1;iargc;i++)
for(j=0;argv[i][j]!=’\0′;j++)
x=fun();
printf(“%d\n”,x*argc);
}
(1)若程序经编译连接后生成可执行文件2_3.exe,若键入以下命令行:
2_3 abcd 123
则程序的运行结果为( 28 )。
28 (A) 3 (B) 21 (C) 9 (D) 0
(2)若将函数fun中的static去掉,变为int c=0; 程序经编译后连接生成可执行文件2_3.exe,若键入以下命令行:
2_3 abcd 123
则程序的运行结果为( 29 )。
29 (A) 3 (B) 30 (C) 22 (D) 10
3. 读程序并回答问题
# include stdio.h
# include string.h
void fun(char *s,int p1,int p2)
{
char t;
while(p1p2)
{
t=*(s+p1); *(s+p1)=*(s+p2); *(s+p2)=t;
p1++; p2–;
}
}
void main()
{
char str[10];
int i;
for(i=0;i9;i++)
str[i]=’A’+i;
str[i]=’\0′;
puts(str);
fun(str,0,strlen(str)-1);
puts(str);
}
(1)第一个puts(str)的输出结果为( 30 )。
30 (A) AHCFEDGBI (B) IBGDEFCHA
(C) ABCDEFGHI (D) IHGFEDCBA
(2)第二个puts(str)的输出结果为( 31 )。
31 (A) AHCFEDGBI (B) IBGDEFCHA
(C) ABCDEFGHI (D) IHGFEDCBA
4. 阅读下面程序,回答问题。
void main()
{
int n,m,s=0,t=1;
scanf(“%d”,m);
for(n=1;n=m;n++)
{
t*=n;
s+=t;
}
printf(“%d\n”,s);
}
程序的功能是( 32 )
32 (A) 实现1的阶乘至m的阶乘的求和
(B) 求m的阶乘
(C) 1到m的求和
(D) 实现1至m-1的阶乘的求和
5. 读程序,回答问题。
# include stdio.h
void main()
{
char s[80];
int i,j;
gets(s);
for(i=j=0;s[i]!=’\0′;i++)
if(s[i]!=’c’) s[j++]=s[i];
s[j]=’\0′;
puts(s);
}
程序运行时输入cctv10,其输出结果为( 33 )。
33 (A) cc (B) tv10 (C) ctv10 (D) tv10cc
6. 有下列程序:
# include stdio.h
char func(char *s)
{
char *p=s;
while(*p!=’\0′)
p++;
return p-s;
}
void main()
{
printf(“\n%d\n”,func(“Hello!”));
getch();
}
(1)程序的运行结果是( 34 )。
34 (A) 3 (B) Hello!6 (C) 无输出 (D) 6
(2)指针变量的运算不可以( 35 )。
35 (A) 指针变量加整形变量 (B) 指针变量减整形变量
(C) 指针变量加指针变量 (D) 指针变量减指针变量
7. 以下是一个C++程序,读程序写出程序运行结果。
# include iostream.h
void main()
{
int num=0,i=8;
do
{ i–;
num++;
}while(–i);
coutnumendl;
}
程序的运行结果是( 36 )。
36 (A) 2 (B) 0 (C) 4 (D) 5
8. 有下列程序:
# include stdio.h
void main()
{ char c=’A’;
int k=0;
do
{ switch(c++)
{ case ‘A’: k++; break;
case ‘B’: k–;
case ‘C’: k+=2; break;
case ‘D’: k%=2; continue;
case ‘E’: k*=10;break;
default: k/=3;
}
k++;
}while(c’G’);
printf(“k=%d\n”,k);
getch();
}
(1)程序输出结果是( 37 )。
37 (A) k=3 (B) k=4 (C) k=2 (D) k=0
(2)本程序中continue的作用( 38 )。
38 (A) 与break一样 (B) 不起任何作用
(C) 开始下一次循环 (D) 出现语法错误
9. 有下列程序
int w=3;
int fun(int k)
{
if(k==0) return w;
return(fun(k-1)*k);
}
void main()
{
int w=10;
printf(“%d\n”,fun(5)*w);
}
输出结果是( 39 )。
39 (A) 360 (B) 3600 (C) 1080 (D) 1200
10. 有下列程序
void main()
{
char ch[2][5]={“6934″,”8254”},*p[2];
int i,j,s=0;
for(i=0;i2;i++)
p[i]=ch[i];
for(i=0;i2;i++)
for(j=0;p[i][j]’\0’p[i][j]=’9′;j+=2)
s=10*s+p[i][j]-‘0’;
printf(“%d\n”,s);
}
输出结果是( 40 )。
40 (A)6385 (B) 69825 (C) 63825 (D) 693825
注意:① 请把下面“程序填空”中各小题答案写在主观题答题纸上
② 每一个空只填一个语句或一个语句所缺的部分内容
三、程序填空 ( 每空2分,共30分 )
1. 函数fun的功能是:找出N行M列二维数组元素中的最大值,并作为函数值返回,最大值的行列下标通过形参指针带回main函数中。请填空。
# include stdio.h
# define N 3
# define M 4
int fun(int a[N][M],int *row,int *col)
{
int i,j,r,c;
r=c=0;
for(i=0;iN;i++)
for(j=0;jM;j++)
if(a[i][j]① ) { r=i; c=j; }
② ;
*col=c;
③ ;
}
void main()
{
int a[N][M]={1,2,3,4,5,6,7,8,9,10,11,12};
int row,col,max;
max=fun(a,row,col);
printf(“max=%d,row=%d,col=%d\n”,max,row,col);
}
2. 程序的功能是:求出分数序列2/1,3/2,5/3,8/5,13/8……前20项之和,请填空。
# include stdio.h
void main()
{ double x=2,y=1,t,s=0;
int i;
for(i=1;i=20;i++)
{
s=① ;
t=② ;
x=③ ;
y=t;
}
printf(“s=%f\n”,s);
}
3. 有5个学生的成绩需要保存在文件score.dat文件中,保存格式如下:
姓名,年龄,成绩CR 请填空。
# include stdio.h
void main()
{ FILE *fp;
int i;
char name[80];
int age;
float score;
fp=fopen(① ,”w”);
for(i=0;i5;i++)
{ printf(“请输入第%d个学生的信息\n”,i);
printf(“姓名:”);
scanf(“%s”,name);
printf(“年龄:”);
scanf(“%d”,age);
printf(“成绩:”);
② ;
fprintf(fp,”%s,%d,%f\n”,name,age,score);
}
③ ;
}
4. 下列程序的功能是:从5个字符串中找出最长的那个字符串。请填空。
# include stdio.h
# include string.h
# define N 5
# define M 81
char *fun(char (*sq)[M])
{ int i;
① ;
sp=sq[0];
for(i=1;iN;i++)
if(② ) sp=sq[i];
return sp;
}
void main()
{ char str[N][M],*longest;
int i;
printf(“please enter 5 string:”);
for(i=0;iN;i++)
gets(str[i]);
for(i=0;iN;i++)
puts(str[i]);
longest=③ ;
printf(“\nThe longest string:”);
puts(longest);
}
5. 下面程序的功能是:由25人坐成圆圈,先从任一人出发用1到25顺时针依次编号,然后从1号开始顺时针报数(1,2,3,4,…),数到5的倍数的出圈,剩下的继续报数,求最后出圈的编号。
# include stdio.h
void main()
{
int a[26],j,n,count;
for(j=1;j=25;j++) a[j]=j;
j=1;
count=0;
① ;
do
{ if(a[j]!=0)
{ n++;
if(n%5==0)
{ ② ;
if(count==24) printf(“%d\n”,j);
count++;
}
}
j++;
if(j25) j=1;
}
while(③ );
}
计算机二级考试C语言选择题(2)
{ char x=0xFFFF;printf(“%d\n”,x–);}
A.-32767
B.FFFE
C.1
D.32768
22.下面的函数调用语句中func函数的实参个数是( )。
func((f2v1,v2),(v3,v4,v5),(v6,max(v7,v8)))
A.3
B.4
C.5
D.8
23.语句“printf(“akbre”\’hi\’y\\\bou\n”)”;的输出结果是( )。
A.akbre\’hi\’y ’\\\bou
B.a\bre\’hi\\y\bou
C.re ’hi’you
D.abre’hi’y\bou
24.下面程序输出的是( )。
main()
{ int t=l;fun(fun(t));}
fun(int h)
{ static int a[3]={1.2.3};
int k;
for(k=0;k3;k++)a[k]+=a[k]-h;
for(k=0;k3;k++)printf(“%d”,a[k]);
printf(“\n”);
return(a[h]);}
A.1,2,3,
1,5,9,
B.1,3,5,
1,3,j,
C.1,3,5,
0,4,8,
D.1,3。5,
-1,3,7,
25.以下叙述中正确的是( )。
A.预处理命令行必须位于C源程序的起始位置
B.在C语言中,预处理命令行都以“#”开头
c.每个C程序必须在开头包含预处理命令行:#include
D.C语言的预处理不能实现宏定义和条件编译的功能
26.为了避免在嵌套的条件语句if else中产生二义性,C语言规定,else子句总是与( )配对。
A.缩排位置相同if
B.其前面最近的if
C.其后面最近的if
D.同一行上的if
27.设有下列程序段:
char str[]=”HelloWorld”:
char* plr;
ptr=str:
执行上面的程序段后,*(ptr+10)的’值为( )。
A.’\0 ’
B.’0’
C.不确定的值
D.’0’的地址
28.有以下程序:
void swap(char*x,char*y)
{ char t;
t=*x;*x=*y;*y=t;
}
main()
{ char*s1=”abe”,*s2=”123″:
swap(s1,s2);
printf(“%s,%s\n”,s1,s2);
}
程序执行后的输出结果是( )。
A.123,abe
B.abc.123
C.1bc,a23
D.321,cba
29.下列程序的运行结果是( )。
#include
main()
{ static char a[]=”Languagef”,b[]=”programe”:
char*p1,*p2;int k;
p1=a;p2=b;
for(k=0;k=8;k++)
if(*(p1+k)==*(p2+k))
printf(“%c”,*(p1+k)):
}
A.gae
B.ang
C.program
D.有语法错
30.下列程序的运行结果为( )。
#define MAX(x,y)(x)(y)?(x):(y)
main()
{ int a=2,b=3,C=1,d=3,t:
printf(“%d\n”,(MAX(a+h,c+d))*100):
}
A.500
B.5
C.4
D.400
31.设int x=7,则~x的值是()。
A.-8
B.7
C.-1
D.1
32.有以下程序:
void fun(char*a,char*b)
{a=b; (*a)++; }
main()
{char c1=’A ’,c2=’a’,*p1,*p2;
p1=c1;p2=*c2;fun(p1,p2);
printf(“%C%c\n”,c1,c2);
}
程序运行后的输出结果是()。
A.Ab
B.aa
C.Aa
D.Bb
33.有以下程序:
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(“%d\n”,
x):
}
执行程序时,给变量X输入10,程序的输出结果是()。
A.55
B.54
C.65
D.45
34.有以下程序:
void f(int x,int y)
{int t;
if(x}
main()
{int a=4,b=3,c=5;
f(a,b);f(a,c);f(b,c);
printf(“%d,%d,%d\n”,a,b,c);
}
执行后输出结果是()。
A.3,4,5
B.5,3,4
C.5,4,3
D.4,3,5
35.以下程序的输出结果是()。
main()
{char*s=”12134211″;
int v[4]=(0,0,0,0),k,i;
for(k=0;s[k];k++)
{switch(s[k])
{case’1’:i=0;
case’2’:i=1;
case’3’:i=2;
四川省计算机二级C语言考试 真题
一、是非判断题(每小题1分,共10分) 1.数据元素是数据的基本单位,数据项是数据的最小单位。 ( 1 ) 2.栈是特殊的线性表,须用一组地址连续的存储单元来存储其元素。 ( 2 ) 3.引入虚拟存储技术后,逻辑内存总容量是由地址总线的位数确定的。 ( 3 ) 4.编译程序是一种常用的应用软件。 ( 4 ) 5.顺序文件和链接文件的长度都可以动态变化。 ( 5 ) 6.在文件系统中彩目录管理文件。 ( 6 ) 7.允许多用户在其终端上同时交互地使用计算机的操作系统称为实时系统。 ( 7 ) 8.程序、数据、和程序控制块是构成一个进程的三要素。 ( 8 ) 9.黑盒测试时,既要考虑程序的内部逻辑结构又要考虑其外部特性。 ( 9 ) 10.软件的总体设计和详细设计都要用PAD图形工具。 ( 10 )二、单项选择题(每小题1分,共5分) 1.允许用户把若干作业提交计算机系统集中处理的操作系统称为( 11 )。11(A)分时操作系统 (B)实时操作系统 (C)网络操作系统 (D)批处理操作系统 2.分配到必要资源并获得了处理机时的进程的状态称为( 12 )。12(A)就绪状态 (B)执行状态 (C)等待状态 (D)阻塞状态 3.利用通道技术可以在( 13 )之间直接交换数据。13(A)内存与CPU (B)CPU与外设 (C)内存与外设 (D)内存、CPU和外设三者 4.以下的准则中哪个不是软件设计的准则( 14 )。14(A)编程语言选择准则 (B)信息屏蔽准则 (C)结构化和模块化准则 (D)抽象准则 5.有一数列:97 65 76 13 29 49 58 经过一趟排序后得到:65 97 13 76 29 49 58 请问使用的是何种排序方法( 15 )。15(A)简单插入排序 (B)冒泡排序 (C)2路归并排序 (D)快速排序 C与C++语言程序设(共85分)一、单项选择题(每小题1分,共10分) 1.定义如下枚举类型:enum Day{Monday,Tuesday,Wednesday,Thursday,Friday=2};则下列语句正确的是 ( 16 )。16 (A) 表达式Wednesday==Friday的值是true(B) enum Day day; day=3;(C) enum Day day; day=Tuesday-3;(D) enum Day day; day=Monday+10; 2.下列程序片段的输出结果是( 17 )。int m=4;do { printf(“%d,”,m-=3); }while(!(–m));17(A)1 (B)1,-3, (C)3,0 (D)死循环 3.执行下列程序片段时的输出结果是( 18 )。int x,y;x=3;y=5;printf(“%d”,x%=(y/=2) );18(A)3 (B)2 (C)1 (D)0 4.对于下述程序,判断正确的是( 19 )。# include stdio.hvoid f(int *p){ *p=10; }int *p;void main(){ f(p); printf(“%d”,(*p)++ );}19 (A) 输出的值是随机值 (B) 运行时出错 (C) 输出值为10 (D) 输出值为11 5.下列程序运行的结果是( 20 )。# define FU(y) 2.8+y# define PR(a) printf(“%d”,(int)(a))# define PRINT(a) PR(a);# include stdio.hvoid main(){ int x=2; PRINT( FU(5) * x );}20(A)12 (B)14 (C)13 (D)15 6.下列程序运行的结果是( 21 )。# include stdio.hvoid main(){ int a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+4; printf(“%d”,*++p); printf(“%d”,++*p);}21 (A)4,3 (B)4,6 (C)5,5 (D)4,5 7.关于对类要领的描述中,错误的是( 22 )。22 (A) 类就是C语言中的结构类型(B) 类是创建对象的样板 (C) 类是具有共同行为的若干对象的统一描述体(D) 类是抽象数据类型的实现 8.已知int a=9,b=4; 将a-b的值输出显示到屏幕上,下列各种实现方法中,正确的是( 23 )。23 (A) couta’-‘bendl (B) cout”a-b”endl (C) couta-bendl (D) cout”%d\n”,a-b 9.下列循环语句会进入死循环的是( 24 )。24 (A) i=0;do {i++; }while(i==100); (B) for(i=0;i100;i+=3.14); (C) for(i=0;;i+=2); (D) k=1;do {k–; }while(k); 10.下面程序运行的结果是( 25 )。# include stdio.hint fun(char *str){ int n=0; while(*str=’0′ *str=’9’) { n=n*10+*str-‘1’; str++; } return n;}void main(){ printf(“%d\n”,fun(“567.89”)); }25 (A)89 (B)567.89 (C)567 (D)456 四川省计算机等级考试二级C语言笔试题(第二十次)二
2009-03-29 15:11:39 二、读程序回答问题(每个选择3分,共45分)。 1.有下列程序:# include iostream.hvoid main(){ int a,b,c,x; a=b=c=0; for(int i=0;i10;i++) { cinx; switch(x%3) { case 0: a+=x; break; case 1: b+=x; break; case 2: c+=x; break; } } couta’,’b’,’cendl;}程序运行时依次输入x的值为:1 2 3 4 5 6 7 8 9 10①程序运行的结果是( 26 )。26 (A) 3,12,21 (B) 18,22,15 (C) 3,4,3 (D) 9,10,8②switch(x%3)与( 27 )相同。27 (A) switch(!(x%3)!=0) (B) switch(x%3==0) (C) switch(x%3!=0) (D) 他们都不相同 2.有下列程序:# include stdio.hvoid main(){
c语言二级考试题及答案
2011年3月全国计算机等级考试二级笔试试卷
C语言程序设计
(考试时间90分钟,满分100分)
一、 选择题(1-10,21-40每题2分,11-20每题1分,共70分)
(1)下列关于栈叙述正确的是
A)栈顶元素最先能被删除
B)栈顶元素最后才能被删除
C)栈底元素永远不能被删除
D)以上三种说法都不对
(2)下列叙述中正确的是
A)有一个以上根结点的数据结构不一定是非线性结构
B)只有一个根结点的数据结构不一定是线性结构
C)循环链表是非线性结构
D)双向链表是非线性结构
(3)某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)
A)3 B)4 C)6 D)7
(4)在软件开发中,需求分析阶段产生的主要文档是
A)软件集成测试计划 B)软件详细设计说明书
C)用户手册 D)软件需求规格说明书
(5)结构化程序所要求的基本结构不包括
A)顺序结构 B)GOTO跳转
C)选择(分支)结构 D)重复(循环)结构
(6)下面描述中错误的是
A)系统总体结构图支持软件系统的详细设计
B)软件设计是将软件需求转换为软件表示的过程
C)数据结构与数据库设计是软件设计的任务之一
D)PAD图是软件详细设计的表示工具
(7)负责数据库中查询操作的数据库语言是
A)数据定义语言
B)数据管理语言
C)数据操纵语言
D)数据控制语言
(8)一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是
A)1:1联系 B)1:m联系
C)m:1联系 D)m:n联系
(9)有三个关系R、S和T如下:
则由关系R和S得到关系T的操作是
A)自然连接 B)交 C)除 D)并
(10)定义无符号整数类为UInt,下面可以作为类UInt实例化值的是
A)-369 B)369 C)0.369 D)整数集合{1,2,3,4,5}
(11)计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是
A)C语言程序仅可以编译执行
B)C语言程序仅可以解释执行
C)C语言程序既可以编译执行又可以解释执行
D)以上说法都不对
(12)以下叙述中错误的是
A)C语言的可执行程序是由一系列机器指令构成的
B)用C语言编写的源程序不能直接在计算机上运行
C)通过编译得到的二进制目标程序需要连接才可以运行
D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件
(13)以下选项中不能用作C程序合法常量的是
A)1,234 B)’123′
C)123 D)”\x7G”
(14)以下选项中可用作C程序合法实数的是
A).1e0 B)3.0e0.2
C)E9 D)9.12E
(15)若有定义语句:inta=3,b=2,c=1;,以下选项中错误的赋值表达式是
A)a=(b=4)=3; B)a=b=c+1;
C)a=(b=4)+c; D)a=1+(b=c=4);
(16)有以下程序段
char name[20];
int num;
scanf(“name=%s num=%d”,name;num);
当执行上述程序段,并从键盘输入:name=Lili num=1001回车后,name的值为
A)Lili B)name=Lili C)Lili num= D)name=Lili num=1001
(17)if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是
A)必须是逻辑值 B)必须是整数值
C)必须是正数 D)可以是任意合法的数值
(18)有以下程序
#include
main()
{ int x=011;
printf(“%d\n”,++x);
}
程序运行后的输出结果是
A)12 B)11 C)10 D)9
(19)有以下程序
#include
main()
{ int s;
scanf(“%d”,s);
while(s0)
{ switch(s)
{ case1:printf(“%d”,s+5);
case2:printf(“%d”,s+4); break;
case3:printf(“%d”,s+3);
default:printf(“%d”,s+1);break;
}
scanf(“%d”,s);
}
}
运行时,若输入1 2 3 4 5 0回车,则输出结果是
A)6566456 B)66656 C)66666 D)6666656
(20)有以下程序段
int i,n;
for(i=0;i8;i++)
{ n=rand()%5;
switch (n)
{ case 1:
case 3:printf(“%d\n”,n); break;
case 2:
case 4:printf(“%d\n”,n); continue;
case 0:exit(0);
}
printf(“%d\n”,n);
}
以下关于程序段执行情况的叙述,正确的是
A)for循环语句固定执行8次 B)当产生的随机数n为4时结束循环操作
C)当产生的随机数n为1和2时不做任何操作D)当产生的随机数n为0时结束程序运行
(21)有以下程序
#include
main()
{ char s[]=”012xy\08s34f4w2″;
int i,n=0;
for(i=0;s[i]!=0;i++)
if(s[i]=’0’s[i]=’9′) n++;
printf(“%d\n”,n);
}
程序运行后的输出结果是
A)0 B)3 C)7 D)8
(22)若i和k都是int类型变量,有以下for语句
for(i=0,k=-1;k=1;k++) printf(“*****\n”);
下面关于语句执行情况的叙述中正确的是
A)循环体执行两次B)循环体执行一次C)循环体一次也不执行D)构成无限循环
(23)有以下程序
#include
main()
{ char b,c; int i;
b=’a’; c=’A’;
for(i=0;i6;i++)
{ if(i%2) putchar(i+b);
else putchar(i+c);
} printf(“\n”);
}
程序运行后的输出结果是
A)ABCDEF B)AbCdEf C)aBcDeF D)abcdef
(24)设有定义:doublex[10],*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是
A)scanf(“%f”,x[6]); B)scanf(“%lf”,*(x+6));
C)scanf(“%lf”,p+6); D)scanf(“%lf”,p[6]);
(25)有以下程序(说明:字母A的ASCII码值是65)
#include
void fun(char *s)
{ while(*s)
{ if(*s%2) printf(“%c”,*s);
s++;
}
}
main()
{ char a[]=”BYTE”;
fun(a); printf(“\n”);
}
程序运行后的输出结果是
A) BY B) BT C) YT D) YE
(26)有以下程序段
#include
main()
{ …
while( getchar()!=’\n’);
…
}
以下叙述中正确的是
A)此while语句将无限循环
B) getchar()不可以出现在while语句的条件表达式中
C)当执行此while语句时,只有按回车键程序才能继续执行
D)当执行此while语句时,按任意键程序就能继续执行
(27)有以下程序
#include
main()
{ int x=1,y=0;
if(!x) y++;
else if(x==0)
if (x) y+=2;
else y+=3;
printf(“%d\n”,y);
}
程序运行后的输出结果是
A)3 B)2 C)1 D) 0
(28)若有定义语句:chars[3][10],(*k)[3],*p;,则以下赋值语句正确的是
A)p=s; B)p=k; C)p=s[0]; D)k=s;
(29)有以下程序
#include
void fun(char *c)
{ while(*c)
{ if(*c=’a’*c=’z’) *c=*c-(‘a’-‘A’);
c++;
}
}
main()
{ char s[81];
gets(s); fun(s); puts(s):
}
当执行程序时从键盘上输入Hello Beijing回车,则程序的输出结果是
A)hello beijing B)Hello Beijing C)HELLO BEIJING D)hELLO Beijing
(30)以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。
#include
#define N 10
void fun(int x[N])
{ int i=0;
while(i
}
在程序中下划线处应填入的是
A)x+i B)x[i+1]C)x+(i++) D)x[++i]
(31)有以下程序
#include
main()
{ char a[30],b[30];
scanf(“%s”,a);
gets(b);
printf(“%s\n %s\n”,a,b);
}
程序运行时若输入:
how are you? I am fine回车
则输出结果是
A)how are you? B)how I am fine are you? I am fine
C)how are you? I am fine D)row are you?
(32)设有如下函数定义
int fun(int k)
{ if (k1) return 0;
else if(k==1) return 1;
else return fun(k-1)+1;
}
若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是
A)2 B)3 C)4 D)5
(33)有以下程序
#include
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(“%d\n”,fun(2*a,fun(b,c)));
}
程序运行后的输出结果是 A)3 B)6 C)8 D)12
(34)有以下程序
#include
int fun()
{ static int x=1;
x*=2;
return x;
}
main()
{ int i,s=1;
for(i=1;i=3;i++) s*=fun();
printf(“%d\n”,s);
}
程序运行后的输出结果是 A)0 B)10 C)30 D)64
(35)有以下程序
#include
#define S(x) 4*(x)*x+1
main()
{ int k=5,j=2;
printf(“%d\n”,S(k+j));
}
程序运行后的输出结果是 A)197 B)143 C)33 D)28
(36)设有定义:struct {charmark[12];int num1;double num2;} t1,t2;,若变量均已正确赋初值,则以下语句中错误的是
A)t1=t2; B)t2.num1=t1.num1;C)t2.mark=t1.mark; D)t2.num2=t1.num2;
(37)有以下程序
#include
struct ord
{ int x,y;}dt[2]={1,2,3,4};
main()
{
struct ord *p=dt;
printf(“%d,”,++(p-x));printf(“%d\n”,++(p-y));
}
程序运行后的输出结果是 A)1,2 B)4,1 C)3,4 D)2,3
(38)有以下程序
#include
struct S
{ int a,b;}data[2]={10,100,20,200};
main()
{ struct S p=data[1];
printf(“%d\n”,++(p.a));
}
程序运行后的输出结果是 A)10 B)11 C)20 D)21
(39)有以下程序
#include
main()
{ unsigned char a=8,c;
c=a3;
printf(“%d\n”,c);
}
程序运行后的输出结果是 A)32 B)16 C)1 D)0
(40)设fp已定义,执行语句fp=fopen(“file”,”w”);后,以下针对文本文件file操作叙述的选项中正确的是
A)写操作结束后可以从头开始读 B)只能写不能读
C)可以在原有内容后追加写 D)可以随意读和写
二、填空题
(1)有序线性表能进行二分查找的前提是该线性表必须是 【1】 存储的。
(2)一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序遍历结果为 【2】 。
(3)对软件设计的最小单位(模块或程序单元)进行的测试通常称为【3】 测试
。
(4)实体完整性约束要求关系数据库中元组的 【4】 属性值不能为空。
(5)在关系A(S,SN,D)和关系B(D,CN,NM)中,A的主关键字是S,B的主关键字是D,则称 【5】 是关系A的外码。
(6)以下程序运行后的输出结果是 【6】。
#include
main()
{ int a;
a=(int)((double)(3/2)+0.5+(int)1.99*2);
printf(“%d\n”,a);
}
(7)有以下程序
#include
main()
{ int x;
scanf(“%d”,x);
if(x15) printf(“%d”,x-5);
if(x10) printf(“%d”,x);
if(x5) printf(“%d\n”,x+5);
}
若程序运行时从键盘输入12回车,则输出结果为 【7】 。
(8)有以下程序(说明:字符0的ASCII码值为48)
#include
main()
{ char c1,c2;
scanf(“%d”,c1);
c2=c1+9;
printf(“%c%c\n”,c1,c2);
}
若程序运行时从键盘输入48回车,则输出结果为 【8】 。
(9)有以下函数
void prt(char ch,int n)
{ int i;
for(i=1;i=n;i++)
printf(i%6!=0?”%c”:”%c\n”,ch);
}
执行调用语句prt(‘*’,24);后,函数共输出了 【9】 行*号。
(10)以下程序运行后的输出结果是 【10】。
#include
main()
{ int x=10,y=20,t=0;
if(x==y)t=x;x=y;y=t;
printf(“%d %d\n”,x,y);
}
(11)己知a所指的数组中有N个元素。函数fun的功能是,将下标k(k0)开始的后续元素全部向前移动一个位置。请填空。
void fun(int a[N],int k)
{ int i;
for(i=k;i
}
(12)有以下程序,请在 【12】 处填写正确语句,使程序可正常编译运行。
#include
【12】 ;
main()
{ double x,y,(*p)();
scanf(“%lf%lf”,x,y);
p=avg;
printf(“%f\n”,(*p)(x,y));
}
double avg(double a,double b)
{ return((a+b)/2);}
(13)以下程序运行后的输出结果是 【13】。
#include
main()
{ int i,n[5]={0};
for(i=1;i=4;i++)
{ n[i]==n[i-1]*2+1; printf(“%d”,n[i]); }
printf(“\n”);
}
(14)以下程序运行后的输出结果是 【14】。
#include
#include
#include
main()
{ char *p; int i;
p=(char *)malloc(sizeof(char)*20);
strcpy(p,”welcome”);
for(i=6;i=0;i–) putchar(*(p+i));
printf(“\n-“); free(p);
}
(15)以下程序运行后的输出结果是 【15】。
#include
main()
{ FILE *fp; int x[6]={1,2,3,4,5,6},i;
fp=fopen(“test.dat”,”wb”);
fwrite(x,sizeof(int),3,fp);
rewind(fp);
fread(x,sizeof(int),3,fp);
for(i=0;i6;i++) printf(“%d”,x[i]);
printf(“\n”);
fclose(fp);
}
2011年3月全国计算机等级考试二级笔试试卷
C语言程序设计答案
一.选择题1-5 ABDDB
6-10 ACDCB 11-15 ADBAA
16-20 ADCAD 21-25 BDBCD
26-30 CDCCC 31-35 BBBDB
36-40 CDDCB
二,填空题
1) 顺序 2) DEBFCA 3) 单元测试 4) 主键 5) D 6) 3 7) 1217
8) 09 9) 4 10) 20 0 11) i-1 12) double avg(doublea,double b) 13) 13715
14) e(E)moclew 15) 123456
2010年9月全国计算机等级考试二级C笔试试卷答案
一、选择题
1~5: BCDAA 6~10:DDCCA 11~15:CBBAD 16~20: DAACB
21~25: BCBDC 26~30 :CBDDA 31~35:ACBCD 36~40 :BACBD
二、填空
1.1DCBA2345 2.n-1 3.25 4.结构化 5.物理设计 6.2008
7.15 8.非0 9. 1 4 13 40 10.i 11.2
12.a[row][col] 13.3 14.*s 15.FILE
浙江省历届二级c语言真题及答案
2006年春浙江省高等学校
计算机等级考试试卷(二级C)
说明:⑴ 考生应将所有试题的答案填写在答卷上。其中试题1~试题6,请在答卷上各小题正确选项的对应位置处填“√”;
⑵ 请将你的准考证号的后五位填写在答卷右下角的指定位置内;
⑶ 考试时间为90分钟;
试题1(每小题3分,共12分)
阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】
求 1 + 2/3 + 3/5 + 4/7 + 5/9 + … 的前20项之和。
运行示例:
sum = 11.239837
【程序】
#include stdio.h
void main( )
{
int i, b = 1;
double s;
(1) ;
for(i = 1; i = 20; i++){
s = s + (2) ;
(3)
}
printf( (4) , s);
}
【供选择的答案】
(1) A、s = 0 B、s = 1
C、s = -1 D、s = 2
(2) A、i/b B、double(i)/double(b)
C、i/2*i-1 D、(double)i/(double)b
(3) A、; B、b = 2 * i – 1;
C、b = 1.0 * b; D、b = b + 2;
(4) A、”sum = %d\n” B、”s = %c\n”
C、”sum = %f\n” D、”s = %s\n”
试题2(每小题3分,共12分)
阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】
输入10个整数,将它们从大到小排序后输出。
运行示例:
Enter 10 integers: 1 4 -9 99 100 87 0 6 5 34
After sorted: 100 99 87 34 6 5 4 1 0 -9
【程序】
#include stdio.h
void main( )
{ int i, j, t, a[10];
printf(“Enter 10 integers: “);
for(i = 0; i 10; i++)
scanf( (5) );
for(i = 1; i 10; i++)
for( (6) ; (7) ; j++)
if( (8) ){
t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}
printf(“After sorted: “);
for(i = 0; i 10; i++)
printf(“%d “, a[i]);
printf(“\n”);
}
【供选择的答案】
(5) A、”%f”, a[i] B、”%lf”, a[i]
C、”%s”, a D、”%d”, a[i]
(6) A、j = 0 B、j = 1
C、j = i D、j = i – 1
(7) A、j i B、j 9 – i
C、j 10 – i D、j i – 1
(8) A、a[i-1] a[i] B、a[j+1] a[j+2]
C、a[j] a[j+1] D、a[i] a[j]
试题3(每小题3分,共12分)
阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】
输入一个字符串和一个正整数m,将该字符串中的前m个字符复制到另一个字符串中,再输出后一个字符串。
运行示例1:
Enter a string: 103+895=?
Enter an integer: 6
The new string is 103+89
运行示例2:
Enter a string: 103+895=?
Enter an integer: 60
The new string is 103+895=?
运行示例3:
Enter a string: 103+895=?
Enter an integer: 0
The new string is
【程序】
#include stdio.h
#include (9)
void main( )
{ char s[80], t[80], i, m;
printf(“Enter a string:”);
gets(s);
printf(“Enter an integer:”);
scanf(“%d”, m);
for(i = 0; (10) ; i++)
(11) ;
(12)
printf(“The new string is “);
puts(t);
}
【供选择的答案】
(9) A、ctype.h B、math.h
C、stdio.h D、string.h
(10) A、i m B、s[i]!= ‘\0’
C、s[i]!= ‘\0’ i m D、s[i]!= ‘\0’ || i m
(11) A、*s++ = *t++ B、t[i] = s[i]
C、*t++ = *s++ D、s[i] = t[i]
(12) A、t[i] = ‘\0’; B、;
C、*++s = ‘\0’; D、*++t = ‘\0’;
试题4(每小题3分,共12分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序】
#include stdio.h
void main( )
{ int s, x1, y1, z1, x2, y2, z2;
printf(“Enter 6 integers:”);
scanf(“%d%d%d%d%d%d”, x1, y1, z1, x2, y2, z2);
s = f(x2, y2, z2) – f(x1, y1, z1);
printf(“%d\n”, s);
}
f(int x, int y, int z)
{ int k, n;
int tab[2][13] = {
{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
{0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
};
n = (x % 4 == 0 x % 100 != 0 || x % 400 == 0);
for(k = 1; k y; k++)
z = z + tab[n][k];
return z;
}
(13) 程序运行时,输入1 0 0 0 0 0,输出 (13) 。
A、29 B、28 C、0 D、-1
(14) 程序运行时,输入0 0 1 0 0 0,输出 (14) 。
A、29 B、28 C、0 D、-1
(15) 程序运行时,输入2000 2 1 2000 3 1,输出 (15) 。
A、29 B、28 C、0 D、-1
(16) 程序运行时,输入1981 2 1 1981 3 1,输出 (16) 。
A、29 B、28 C、0 D、-1
试题5(每小题3分,共12分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序】
# include stdio.h
void main ( )
{ int a = -1, b = 1;
void f1(int x, int y), f2(int *x, int *y);
void f3(int *x, int *y), f4(int x, int y);
f1(a, b);
printf(“(%d,%d)\n”, a, b);
a = -1, b = 1;
f2(a, b);
printf(“(%d,%d)\n”, a, b);
a = -1, b = 1;
f3(a, b);
printf(“(%d,%d)\n”, a, b);
a = -1, b = 1;
f4(a, b);
printf(“(%d,%d)\n”, a, b);
}
void f1(int x, int y)
{ int t;
t = x; x = y; y = t;
}
void f2(int *x, int *y)
{ int t;
t = *x; *x = *y; *y = t;
}
void f3(int *x, int *y)
{ int *t;
t = x; x = y; y = t;
}
void f4(int x, int y)
{ int *t = malloc(sizeof(t));
*t = x; x = y; y = *t;
}
(17) 程序运行时,第1行输出 (17) 。
A、(1, -1) B、(-1, 1) C、(-1, -1) D、(1,1)
(18) 程序运行时,第2行输出 (18) 。
A、(1, -1) B、(-1, 1) C、(-1, -1) D、(1,1)
(19) 程序运行时,第3行输出 (19) 。
A、(1, -1) B、(-1, 1) C、(-1, -1) D、(1,1)
(20) 程序运行时,第4行输出 (20) 。
A、(1, -1) B、(-1, 1) C、(-1, -1) D、(1,1)
试题6(每小题3分,共12分)
#include stdio.h
struct card{
char *face;
char *suit;
};
void filldeck(struct card *wdeck, char *wface[],char *wsuit[])
{ int i;
for (i = 0; i 4; i++){
wdeck[i].face = wface[i%2];
wdeck[i].suit = wsuit[i/2];
}
}
void deal(struct card *wdeck)
{ int i;
for (i = 0; i 4; i++)
printf(“(%2s of %-6s)\n”, wdeck[i].face, wdeck[i].suit);
}
void main()
{ struct card deck[4];
char *face[]={“K”,”Q”};
char *suit[]={“Heart”,”Club”};
filldeck(deck,face,suit);
deal(deck);
}
(21) 程序运行时,第1行输出 (21) 。
A、(K of Heart) B、(Q of Heart)
C、(K of Club) D、(Q of Club)
(22) 程序运行时,第2行输出 (22) 。
A、(K of Heart) B、(Q of Heart)
C、(K of Club) D、(Q of Club)
(23) 程序运行时,第3行输出 (23) 。
A、(K of Heart) B、(Q of Heart)
C、(K of Club) D、(Q of Club)
(24) 程序运行时,第3行输出 (24) 。
A、(K of Heart) B、(Q of Heart)
C、(K of Club) D、(Q of Club)
试题7 (14分)
编写程序,输入一批学生的成绩,遇0或负数则输入结束,要求统计并输出优秀(大于85)、通过(60~84)和不及格(小于60)的学生人数。
运行示例:
Enter scores: 88 71 68 70 59 81 91 42 66 77 83 0
=85:2
60-84:7
60 2
试题8 (14分)
编写程序,输入一个正整数n,求下列算式的值。要求定义和调用函数fact(k)计算k的阶乘,函数返回值的类型是double。
运行示例:
Enter n: 5
sum = 1.71667
2006年春浙江省高等学校
计算机等级考试答案(二级C)
试题1~6 试题7 试题8 合计
试题1~6
A B C D A B C D
(1) √ (13) √
(2) √ (14) √
(3) √ (15) √
(4) √ (16) √
(5) √ (17) √
(6) √ (18) √
(7) √ (19) √
(8) √ (20) √
(9) √ (21) √
(10) √ (22) √
(11) √ (23) √
(12) √ (24) √
试题7
#include stdio.h
void main( )
{
int mark, a, p, f;
c = p = f = 0;
printf(“Enter scores:”);
scanf (“%d”, mark);
while (mark = 0){
if(mark = 85) a++;
else if (mark = 60) p++;
else f++;
scanf (“%d”, mark);
}
printf(“=85:%d\n”, a);
printf(“60-84:%d\n”, p);
printf(“60:%d\n”, a);
}
试题8
#include stdio.h
void main( )
{ int i, n;
double x, sum;
double fact(int n);
scanf(“%d”, n);
sum = 0;
for(i=1; i=n; i++)
sum = sum + 1/fact(i);
printf(“sum=%f\n”, sum);
}
double fact(int n)
{ int i;
double res = 1;
for(i=1; i=n; i++)
res = res*i;
return res;
}
2015年c语言二级考试真题的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、2015年c语言二级考试真题的信息别忘了在本站进行查找喔。