全国计算机等级考试二级笔试样卷C语言程序设计
一、选择题((1)~(10)、(21)~(40)每题2分,(11)~(20)每题2分,总分70分)
以下每个问题 A)、二)、C)、D) 四个选项中,只有一个选项是正确的,请将正确选项写在答题卡相应位置上,在试卷上作答不会得分。
(1) 以下哪个选项不符合良好的编程风格
A) 源程序必须有文档记录 B) 数据描述的顺序必须标准化
C) 避免滥用 goto 语句 D) 模块设计应保证高耦合、高凝聚力
(二)从项目管理的角度来看,软件设计一般分两步完成,他们是
A) 概要设计和详细设计 B) 数据设计和界面设计
C) 软件结构设计和数据设计 D) 流程设计和数据设计
(3) 下列哪个选项不属于软件生命周期开发阶段的任务
A) 软件测试 B) 概要设计 C) 软件维护 D) 详细设计
(4)在数据库系统中,用户看到的数据模式是
A) 概念模型 B) 外部模型 C) 内部模型 D) 物理模型
(5)数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和
A) 编码设计 B) 测试阶段 C) 操作阶段 D) 物理设计
(6) 共有如下三张关系表

以下哪项操作是正确的
A) T=R∩S B) T=R∪S
C) T=R×S D) T=R/S
(7)下列哪些说法是正确的
A)算法的空间复杂度大,那么它的时间复杂度也一定很大
B)算法的空间复杂度大,那么它的时间复杂度一定很小
C)算法时间复杂度大,那么它的空间复杂度一定很小
D) 以上三种说法均不正确
(8) 在长度为64的有序线性列表中顺序搜索,在最坏的情况下,所需的比较次数为
A) 63 B) 64 C) 6 D) 7
(9)数据库技术的根本目标是解决数据问题
A) 存储问题 B) 共享问题 C) 安全问题 D) 保护问题
(10) 对于如下二叉树

进行中序遍历的结果是
A) ACBDFEG B) ACBDFGE C) ABDCGEF D) FCADBEG
(11)下列说法错误的是
A) 一个C语言程序只能实现一种算法
B) 一个C程序可以由多个程序文件组成
C) C 程序可以由一个或多个函数组成
D) C函数可以作为C程序文件单独存在
(12)下列哪项表述是正确的
A) 每个C程序文件必须有一个main()函数
B) main()函数在C程序中的位置是固定的
C)C程序中的所有函数都可以互相调用,与函数的位置无关
D) 不能在 C 程序的函数内定义另一个函数
(13) 下列定义变量的说法错误的是
A)int_int;B) 双整数_;C) 字符 对于;D) 浮动美元;
(14) 如果变量 x、y 已被正确定义并赋值,下面符合C语言语法的表达式是
A)++x,y=x-- B) x+1=y C) x=x+10=x+y D) double(x)/10
(15) 下列关于逻辑运算符两边操作数的说法正确的是
A) 只能是整数0或1 B) 只能是整数0或非0整数
C) 可以是结构类型的数据 D) 可以是任何合法的表达式
(16) 如果定义了 int x,y;并正确地给变量赋值,那么下列选项与表达式(x-y)一致?(x++):(y++) 中的条件表达式 (x-y) 等价于
A)(x-y>;0) B) (x-y<0) C) (x-y<0||x-y>;0) D) (x-y==0)
(17)有以下程序
主要的()
{ int x, y, z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",X,y,z);
}
程序运行后的输出为
A2,3,3 B) 2,3,2C)2,3,1 D) 2,2,1
(18) 有一个定义:整数a;浮动b;执行scanf("%2d%f",&A,&b);陈述时间,如果您从键盘输入 876 543.0<输入(>);a和b的值分别为
A)876和543.000000 B) 87 和 6.000000
C) 87 和 543.000000 D) 76 和 543.000000
(19)有以下程序
主要的()
{ int a=0, b=0;
a=10;到
b=20;给b赋值*/
printf("a+b=%d\n",a+b);/* 输出计算结果 */
}
程序运行后的输出为
A) a+b=10 B) a+b=30 C) 30 D) 错误
(20) 在嵌套中使用 if 语句时,C语言规定else总是
A) 如果具有相同的压痕位置,则与前一个配对
B)如果最接近的话就与前一个配对
C) 如果最接近前一个,则与前一个配对,无需其他
D) 与第一个 if before 配对
(21) 下列哪项陈述是正确的
A)break语句只能与switch语句一起使用
B) switch 语句中必须使用默认值
C)break语句必须与switch语句中的case配对
D) switch语句中,不需要使用break语句
(22)有以下程序
主要的()
{ int k=5;
while(--k) printf("%d",k -= 3);
printf("\n");
}
执行后的输出是
A) 1 B) ous
(23)有以下程序
主要的()
{ int i;
对于(我= 1;i<=40;我++)
{ if(i++%5==0)
if(++i%8==0) printf("%d ",我);
}
printf("\n");
}
执行后的输出是
A) 5 B) 24 C) 32 d) 40
(24) 下列选项之一,值为 1 的表达式为
A) 1 – '0' B) 1 - '\0' C) '1' -0 D) '\0' - '0'
(25)有以下程序
乐趣(整数x,整数 y){ return (x+y); }
主要的()
{ int a=1, b=2, c=3, sum;
总和=乐趣((a++,乙++,a+b),c++);
printf("%d\n",和);
}
执行后的输出是
A)6
(26)有以下程序
主要的()
{ char s[]="abcde";
s+=2;
printf("%d\n",s[0]);
}
执行后的结果是
A) 输出字符 a 的 ASCII 码 B) 输出字符 c 的 ASCII 码
C) 输出字符 c D) 程序错误
(27)有以下程序
乐趣(整数x,整数 y)
{ static int m=0, i=2;
我+=m+1;m=i+x+y;返回米;
}
主要的()
{ int j=1, m=1, k;
k=乐趣(j,米);printf("%d,”,k);
k=乐趣(j,米);printf("%d\n",k);
}
执行后的输出是
答)5,5 B) 5,11 C) 11,11D)11,5
(28)有以下程序
乐趣(整数x)
{ int p;
if(x==0||x==1) 返回(3);
p=x-fun(x-2);
返回 p;
}
主要的()
{ printf("%d\n",fun(7)); }
执行后的输出是
A) 7 B) 3 C) 2 D) 0
(29) 在16位编译系统上,如果有int a[]=的定义{10,20,30}*p=&a;执行p++时;后退,以下哪项陈述是错误的
A) p 将一个字节移动到高地址 B) p 将一个存储单元移动到高地址
C) p 移动两个字节到更高的地址 D) p 相当于 a+1
(30)有以下程序
主要的()
{ int a=1, b=3, c=5;
int *p1=&a,*p2=&b,*p=&c;
*p =*p1*(*p2);
printf("%d\n",C);
}
执行后的输出是
A)1
(31) 如果定义:整数 w[3][5];那么下面不能正确表示数组元素的表达式是
A)*(*w+3) B)*(w+1)[4] C)*(*(w+1)) D)*(&w[0][0]+1)
(32)如果有如下函数头
int 乐趣(双 x[10],整数*n)
那么下面这个函数正确的函数声明语句是
A) int fun(双 x,整数*n);B) int fun(双),整数);
C) int fun(双*x,整数 n);D)int fun(双*,整数 *);
(33)有以下程序
无效变化(int k[]){ k[0]=k[5]; }
主要的()
{ int x[10]={1,2,3,4,5,6,7,8,9,10}n=0;
而( n<=4){ change( &x[n]) ; n++; }
对于(n = 0;n<5;n++) printf("%d ",x[n]);
printf("\n");
}
程序运行后输出结果为
A) 6 7 8 9 10 B) 1 3 5 7 9 C) 1 2 3 4 5 D) 6 2 3 4 5
(34)有以下程序
主要的()
{ int x[3][2]={0}我;
对于(我= 0;i<3;i++) scanf("%d",x[i]);
printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0]);
}
如果在运行时输入:2 4 6<输入(>);输出结果为
A) 2 0 0 B) 2 0 4 C) 2 4 0 D) 2 4 6
(35) 有以下程序
int 添加( int a,整数 b){ return (a+b); }
主要的()
{ int k, (*f)(), a=5,b=10;
f=添加;
……
}
那么下面的函数调用语句是错误的
A)k=(*f)(a,b);B) k=加(a,b);
C)k= *f(a,b);D)k=f(a,b);
(36)有以下程序
#包括
主要( int argc,字符 *argv[ ])
{ int i=1,n=0;
当我
printf("%d\n",n);
}
该程序生成的可执行文件名为:进程.EXE文件。如果运行时输入命令行:
过程 123 45 67
那么程序的输出结果就是
A) 3 b) 5 c) 7 d) 11
(37) 有以下程序
#包括
# 定义 N 5
# 定义 M N+1
# 定义 f(x) (x*M)
主要的()
{ int i1, i2;
i1 = f(2);
i2 = f(1+1);
printf("%d %d\n",i1,i2);
}
程序运行的结果是
A) 12 12 B) 11 7 C) 11 11 D) 12 7
(38) 有如下结构描述、变量定义和赋值语句
结构性病
{ char name[10];
年龄;
字符性别;
} s[5],*ps;
ps=&s[0];
那么在下面的scanf函数调用语句中,错误地引用了结构体变量的哪个成员呢
A)scanf(“%s”,s[0].姓名);B) scanf("%d",&s[0].年龄);
C) scanf("%c",&(ps->;性别));D) scanf(“%d”,PS->;年龄);
(39) 如有下列定义和陈述
联合数据
{ int i; char c; float f; }X;
整数;
那么下列说法正确的是
A)x=10.5;B)x.c=101;C) y=x;D) printf("%d\n",X);
(40)有以下程序
#包括
主要的()
{ FILE *fp; int i;
字符 ch[]="abcd",t;
fp=fopen("abc.数据”,“WB+”);
对于(我= 0;i<4;i++) fwrite(&ch[i],1,1,FP);
fseek(fp,-2L,SEEK_END);
恐惧(&t,1,1,FP);
f关闭(fp);
printf("%c\n",t);
}
执行程序后的输出为
广告
二、填空题(每题2分),共30分钟)
请在答题卡上编号为 [1] 至 [15] 的水平线上每个空白处写下正确答案,在试卷上作答不会得分。
(1)如下软件系统结构图
宽度为[1]。
(2) [2] 任务是诊断并纠正程序中的错误。
(3)关系表的行称为[3]。
(4)按照“先进后出”原则组织的数据的数据结构为[4]。
(5)数据结构分为线性结构和非线性结构,链式队列属于[5]。
(6) 有一个定义:浮动 x=123.4567;那么执行下面语句后输出结果为[6]。
printf("%f\n",(整数)(x*100+0.5)/100.0);
(7) 运行以下程序后输出结果为[7]。
主要的()
{ int m=011,n=11;
printf("%d %d\n",++米,n++);
}
(8) 运行以下程序后输出结果为[8]。
主要的()
{ int x,a=1,b=2,c=3,d=4;
x=(a x=(x x=(d>;X)?X:d;
printf("%d\n",X);
}
(9)有以下程序,如果运行时从键盘输入:18,11<输入(>);那么程序的输出结果就是[9]。
主要的()
{ int a,b;
printf("输入一个,乙:”);scanf("%d,%d”,&A,&b);
而(a!=b)!
{ while(a>b) a -= b;
同时(b>a) b -= a;
}
printf("%3d%3d\n",A,b);
}
(10) 下列程序的功能是:将输入的正整数倒序输出。例如:如果输入135,则输出531。请填写空白。
#包括
主要的()
{ int n,s;
printf("请输入一个数字:”);扫描(“%d”,&n);
printf("输出:”);
做
{ s=n%10; printf("%d",s); 【10】 ; }
而(n!= 0)!
printf("\n");
}
(11) 在下列程序中,函数fun的作用是计算x2-2x+6,main函数中会调用fun函数进行计算:
y1=(x+8)2-2 (x+8)+6
y2=sin2(x)-2sin(x)+6
请填写空白。
#包括“数学.H”
双倍乐趣(双x){ return (x*x-2*x+6); }
主要的()
{ double x,y1,y2;
printf("输入x:”);扫描(“%lf”,&X);
y1=乐趣(【11】);
y2=乐趣(【12】);
printf("y1=%lf,y2=%lf\n",y1,y2);
}
(12) 下列程序的功能是:对 N 行 N 列的二维数组的每一行中的元素进行排序,第0行从小到大排序,第 1 行从大到小排序,第 2 行从小到大排序,3号线从大到小排序,例如:
#定义N 4
无效排序(int a[][N])
{ int i, j, k, t;
对于 (i=0;我
对于 (j=0;j
对于 (k=【13】;k
/* 判断行下标是否为偶数来决定是升序还是降序排序 */
如果(【14】?a[i][j]a[i][k])
{ t = a[i][j];
a[i][j]=a[i][k];
a[i][k] = t;
}
}
无效 outarr(int a[N][N])
{ …… }
主要的()
{ int aa[N][N]={{2,3,4,1}{8,6,5,7}{11,12,10,9}{15,14,16,13}};
奥塔尔(aa);/*以矩阵的形式输出二维数组*/
排序(aa);
奥塔尔(aa);
}
(13) 运行下列程序的结果是:【15】。
#包括
int f(int a[]),整数 n)
{ if(n>1)
返回 a[0] + f(a+1,n-1);
别的
返回一个[0];
}
主要的()
{ int aa[10]={1,2,3,4,5,6,7,8,9,10}s;
s = f(aa+2,4);printf("%d\n",);
}

中国人民公安大学硕士学位授权点,即可以报考中国人民公安大学的研究生,至于哪些硕士项目正在招生,学生可在中国人民公安大学研究生招生网站查询相关...

对于舞蹈生而言,综合分达到526分,有被浙江师范大学录取的可能性。然而,浙江师范大学的录取标准并非一成不变,它会因省份以及专业的差异而有所不...

2024年招生计划尚未公布,通常,每年招生计划不会有太大变化,本文为您整理了信阳航空职业学院往年艺术类招生计划,主要包括招生专业、河南省各专...

2024年招生计划尚未公布,通常,每年招生计划不会有太大变化,本文为您整理了辽宁工程学院往年招生计划,主要包括招生专业、招生类别、全国各专业...

有一定的概率考上,但具体情况还需依据专业和省份来判断。沈阳航空航天大学在录取艺术生时,通常会综合评估文化课与专业课成绩,且每年的录取情况都有...

根据教育部公布的第四轮(第五轮尚未公布)学科评估结果:蚌埠医学院无乙类学科,但有基础医学、临床医学等C类学科。以下是具体名单,我希望对您有所...

上海海洋大学和南京理工大学哪个好一点?哪个排名靠前一些?谁更厉害更强?上海海洋大学VS南京理工大学,哪个最低录取分数线更高?上海市的上海海洋...

有一定的概率考上,但具体情况还需依据专业和省份来判断。浙江工商大学在录取艺术生时,通常会综合评估文化课与专业课成绩,且每年的录取情况都有所差...

“重庆高考考多少分可以考西藏大学?”,而在重庆,“高考有多少学生可以考入西藏大学?”,这想必是很多重庆考生想知道的。本文将介绍2022年重庆...

对于美术生而言,综合分达到586分,有被北京工业大学录取的可能性。然而,北京工业大学的录取标准并非一成不变,它会因省份以及专业的差异而有所不...

内蒙古大学和吉林动画学院哪个好一点?哪个排名靠前一些?谁更厉害更强?内蒙古大学VS吉林动画学院,哪个最低录取分数线更高?内蒙古区呼和浩特市的...

别来北京化工大学?为什么不推荐去北京化工大学?很多关注北京化工大学的高考学子,你会在网上看到很多类似的问题。基于此,他还询问在北京化工大学学...

2025音乐生547分有很大几率被西安石油大学录取。音乐生要根据文化课成绩和专业课成绩,合理选择院校层次。还要明确自己对音乐类专业的兴趣方向...

机械工程是近年来热门专业之一,想申请机械工程,你首先要了解机械工程专业的内容是什么,以及机械工程将来是否是一份好工作,是热门专业还是冷门专业...

有一定的概率考上,但具体情况还需依据专业和省份来判断。浙江树人学院在录取艺术生时,通常会综合评估文化课与专业课成绩,且每年的录取情况都有所差...