2015年上半年浙江省高等学校计算机等级考试
二级C程序设计试卷
说明:
⑴本试卷共6页,满分100分;考试时间为90分钟;
⑵考生应将所有试题的答案填写在答卷上;
⑶程序阅读与填空全部是选择题,请在答卷上的各小题选项的对应位置上填“√”;
⑷请将你的准考证号的后五位填写在答卷右下角的指定位置内。
一、程序阅读与填空(24小题,每小题3分,共72分)
1.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】
输入2个正整数m和n(m≤n),输出从m到n之间所有的整数,每行输出5个数,再输出这些数的和。
运行示例:
Enter m and n:-3 4
-3 -2 -1 0 1
2 3 4
sum=4
【程序】
#include
void main()
{ int i,m,n,sum;
printf("Enter m and n:");
scanf("%d%d",&m,&n);
(1) ;
for(i=m; (2) ;i++){
printf("%6d",i);
if(( (3) )%5==0)
printf("\n");
(4) ;
}
printf("\nsum=%d\n",sum);
}
【供选择的答案】
(1)A、sum=0 B、sum=1
C、i=0
D、m=0
(2)A、i
C、i<=n
D、i>n
(3)A、i+1 B、i
C、i-m
D、i-m+1
(4)A、sum=+i B、sum=sum+i
C、sum=sum+m
D、sum=sum+n
2.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】
设已有一个10个元素的整形数组a,且按值从小到大有序。输入一个整数x,在数组中查找x,如果找到,输出相应的下标,否则,输出“Not Found”。
运行示例1:
Enter x :8
Index is 7
运行示例2:
Enter x :71
Not Found
【程序】
#include
int Bsearch(int p[],int n,int x);
main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int m,x;
printf("Enter x:");
scanf("%d",&x);
(5) ;
if(m>=0)
printf("Index is %d\n",m);
else
printf("Not Found\n");
}
int Bsearch(int p[],int n,int x)
{
int high,low,mid;
low=0;high=n-1;
while(low<=high){
(6) ;
if(x==p[mid])
break;
else if(x
(7) ;
else
low=mid+1;
}
if(low<=high)
(8) ;
else
return -1;
}
【供选择的答案】
(5)A、Bsearch(a,10,x) B、m=Bsearch(a,10,x)
C、m=Bsearch(p,n,x)
D、Bsearch(p,n,x)
(6)A、mid=low/2 B、mid=high/2
C、mid=(low+high)/2
D、mid=( high -low)/2
(7)A、mid=high-low B、high=mid-1
C、high=low
D、low=high
(8)A、return high B、return low
C、return 0
D、return mid
3.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】
输入一个以回车结束的字符串(少于80个字符),将其中的大写字母用下面列出的对应大写字母替换,其余字符不变,输出替换后的字符串。
原字母对应字母
A →Z
B →Y
C →X
D →W
…
X → C
Y → B
Z → A
运行示例:
Input a string:A flag of Team
After replaced:Z flag of Geam
【程序】
#include
main()
{
int i;char ch,str[80];
printf("Input a string:");
i=0;
while( (9) ){
(10) ;
}
str[i]='\0';
for(i=0; (11) ;i++)
if(str[i]>='A'&&str[i]<='Z')
str[i]= (12) ;
printf("After replace:");
for(i=0;str[i]!='\0';i++)
putchar(str[i]);
putchar('\n');
}
【供选择的答案】
(9)A、getchar()!=’\n’B、(ch=getchar())!='\n'
C、ch!=’\n’
D、ch=getchar()!='\n'
(10)A、str[i]=ch B、str[i]=getchar()
C、str[i++]=ch
D、ch=str[i]
(11)A、str[i]!='\0' B、str[i]='\0'
C、str[i]=='\0'
D、i<=80
(12)A、'A'-'Z'-str[i] B、'A'+'Z'-str[i]
C、-'A'+'Z'-str[i]
D、str[i]-'A'+'Z'
4.阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】
#include
int f1()
{ return 0x0b & 3;
}
char f2(int i)
{ char ch='a';
switch(i){
case 1:
case 2:
case 3: ch++;}
return ch;
}
int f3(int x)
{ int s;
if(x<0) s=-1;
else if(x=0) s=0;
else s=1;
return s;
}
main()
{ printf("%d\n",EOF);
printf("%x\n",f1());
printf("%c %c\n",f2(2),f2(5));
printf("%d %d %d\n",f3(-1),f3(0),f3(10));
}
【问题】
(13)程序运行时,第1行输出(13)。
A、-1
B、NULL
C、EOF
D、1
(14)程序运行时,第2行输出(14)。
A、1
B、2
C、3
D、b
(15)程序运行时,第3行输出(15)。
A、c a
B、a a
C、a c
D、b a
(16)程序运行时,第4行输出(16)。
A、1 0 -1
B、-1 -1 1
C、-1 1 1
D、-1 0 1
5.阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】
程序1
#include
int f1(int n)
{ static int r=0;
return r++;
}
main()
{ int i;
for(i=0;i<=5;i++)
printf("%d\n",f1(i));
}
程序2
#include
int f2(int n)
{ if(n==1) return 1;
else return n+f2(n-1);
}
main()
{ int i;
for(i=5;i>0;i--)
printf("%d\n",f2(i));
}
【问题】
(17)程序1运行时,第2行输出(17)。
A、1
B、2
C、3
D、0
(18)程序1运行时,第5行输出(18)。
A、0
B、4
C、3
D、2
(19)程序2运行时,第1行输出(19)。
A、1
B、3
C、10
D、15
(20)程序2运行时,第4行输出(20)。
A、10
B、1
C、6
D、3
6.阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】
#include
main()
{ int i,j,n=5,a[10][10];
for(i=0;i a[i][0]=a[i][i]=1; for(i=0;i for(j=1;j a[i][j]=a[i-1][j-1]+a[i-1][j]; for(i=0;i for(j=0;j printf("%4d",0); for(j=0;j<=i;j++) printf("%4d",a[i][j]); printf("\n"); } } } 【问题】 (21)程序运行时,第2行输出(21)。 A、0 0 0 1 1 B、0 0 0 0 1 C、0 0 0 3 4 D、0 1 1 1 (22)程序运行时,第3行输出(22)。 A、0 0 1 2 1 B、1 2 1 0 1 C、1 0 2 0 0 D、1 0 0 1 (23)程序运行时,第4行输出(23)。 A、0 1 2 3 1 B、0 0 0 0 2 C、2 1 2 2 3 D、0 1 3 3 1 (24)程序运行时,第5行输出(24)。 A、1 3 3 1 0 B、0 1 4 3 1 C、1 4 6 4 1 D、3 0 0 3 二、程序编写(每题14分,共28分) 1.输入10个整数,将它们存入数组a中,先找出数组a中绝对值最大的数,再将它和第一个数交换,最后输出这10个数。 2.按下面要求编写程序: (1)定义函数fun(x)计算x2-6.5x+2,函数返回值类型是double。 (2)输出一张函数表(如下表所示),x 的取值范围是[-3,3],每次增加0.5,y= x2-6.5x+2。要求调用函数fun(x)计算x2-6.5x+2。 x y -3.00 30.50 -2.5 24.50 …… 2.5 -8.00 3.00 -8.50 一、单项选择题 1. 软件危机具有下列表现( d )。 I. 对软件开发成本估计不准确II. 软件产品的质量往往靠不住 III. 软件常常不可维护IV. 软件成本逐年上升 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 2. 软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是( A )。 A. 运行和维护阶段 B. 设计阶段 C. 代码实现阶段 D. 测试阶段 3. 下列属于软件的特点的是( D )。 A. 软件是一种逻辑实体,具有抽象性 B. 软件在使用过程中没有磨损、老化的问题 C. 软件不同于一般程序,它的一个显着特点是规模庞大,复杂程度高 D. 以上都正确 4. 软件工程的出现是由于( D )。 A. 软件危机的出现 B. 计算机硬件技术的发展 C. 软件社会化的需要 D. 计算机软件技术的发展 5. 软件开发技术不包含( d )。 A. 软件开发方法学 B. 软件工程环境 C. 软件工具 D. 软件质量度度量 6. 软件工程的课程特点( D )。 I. 学科理论及其知识应用的多维性 II. 工程化 III. 浓厚的方法学色彩 IV. 实践性、指导性强 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 7. 下列属于应用软件的是( b )。 I. 计算机辅助教学软件II. 软件测试工具 III. 办公自动化软件IV. 工程与科学计算软件 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 8. 需求分析阶段最重要的技术文档是( b )。 C语言函数练习题 一、选择题 1. 一个完整的C源程序是【】。 A)要由一个主函数或一个以上的非主函数构成 B)由一个且仅由一个主函数和零个以上的非主函数构成 C)要由一个主函数和一个以上的非主函数构成 D)由一个且只有一个主函数或多个非主函数构成 2. 以下关于函数的叙述中正确的是【】。 A)C语言程序将从源程序中第一个函数开始执行 B )可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行 C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束 D)m ain可作为用户标识符,用以定义任意一个函数 3. 以下关于函数的叙述中不正确的是【】。 A)C程序是函数的集合,包括标准库函数和用户自定义函数 B)在C语言程序中,被调用的函数必须在main函数中定义 C)在C语言程序中,函数的定义不能嵌套 D)在C语言程序中,函数的调用可以嵌套 4. 在一个C程序中,【】。 A)main函数必须出现在所有函数之前 B)main函数可以在任何地方出现 C)m ain函数必须出现在所有函数之后 D)m ain函数必须出现在固定位置 5. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【】 A)float B)long C)int D)double 6. 以下关于函数叙述中,错误的是【】。 A)函数未被调用时,系统将不为形参分配内存单元 B)实参与形参的个数应相等,且实参与形参的类型必须对应一致 C)当形参是变量时,实参可以是常量、变量或表达式 D )形参可以是常量、变量或表达式 7. 若函数调用时参数为基本数据类型的变量,以下叙述正确的是【】。 A)实参与其对应的形参共占存储单元 B)只有当实参与其对应的形参同名时才共占存储单元 C)实参与对应的形参分别占用不同的存储单元 D)实参将数据传递给形参后,立即释放原先占用的存储单元 9. 函数调用时,当实参和形参都是简单变量时,他们之间数据传递的过程是【】。 A)实参将其地址传递给形参,并释放原先占用的存储单元 B)实参将其地址传递给形参,调用结束时形参再将其地址回传给实参 C)实参将其值传递给形参,调用结束时形参再将其值回传给实参 综合练习 一、判断题 1.在Trubo_C中运行一个C程序时,实际上是运行后缀为.EXE的可执行文件。2.在C语言中整数可用十进制数、八进制数和二进制数三种数制表示。 3.在程序的运行过程中,整型常量的值是可以改变的。 4. C程序中,用/* 和 */界定的部分称之为注释,注释部分对程序的运行不起作用。5.大括弧 { } 只能用来括复合语句。 6. do_while语句构成的循环不能用其它循环语句来代替。 7.不能用scanf 函数输入字符。 8.在 C 程序中,函数的定义不可以嵌套,但函数的调用可以嵌套。 9. 一个变量的作用域取决于变量定义语句在程序中出现的位置。 10.C 语言的一个编译预处理命令用 # 开始,最后加分号。 11. C语言源程序文件经过编译、连接之后生成一个后缀为.EXE的文件。 12. C语言中以 %o开头的数是八进制整数。 13.在程序的运行过程中,符号常量的值是可以改变的。 14.在 C 程序中,APH 和 aph 代表不同的变量。 15.一个复合语句在语法上被认为是一条语句。 16. 只能用while语句构成循环。 17.不能用printf函数输出字符。 18. C程序中各函数之间既允许直接递归调用也允许间接递归调用。 19. 在函数外部定义的变量称为全局变量。 20.宏定义的命令行可以看作是一条C 语句。 21. C语言源程序是可以用来直接运行的程序。 22. C语言中以 %x 开头的数是十六进制整数。 23. C程序中定义的变量,代表内存中的一个存储单元。 24.在 C 程序中,9ab是非法的用户标识符。 25. C语句必须用一个分号作为结束。 26. do_while语句构成的循环不能用break语句退出。 27. scanf 函数是 c 语言的标准输入函数。 28. C程序的main函数不能有参数。 29. 在函数内部定义的变量称为局部变量。 30.用#include包含的头文件的后缀必须是.h。 31. C 语言程序的三种基本结构是顺序结构、选择结构和循环结构。 32.在C语言中整数只能表示为十进制数的形式。 33.在 C 程序中,无论多少大的整数还是实数,都能准确无误的表示。 34. Turbo-C 语言中,字符类型数据占1个字节。 35.空语句是合法的C语句。 36. while语句的循环体不能是复合语句。 37. printf 函数是 c 语言的标准输出函数。 38. C程序的main函数可以有参数,但参数不能是指针类型。 39.在 main函数中定义的变量称为全局变量。 40.#include 和 #define 不是 C 语句。 41. C 语言程序的三种基本结构是嵌套结构、选择结构和循环结构。 42. C语言中 018是合法的八进制整数。 43. C程序中所要用到的变量应该先定义,后使用。 44.十六进制数0x11的十进制数是17。 45.赋值语句是一种可执行语句。 一、单项选择题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中的main函数D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D)。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是C。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a C语言基础练习100题(含答案) 欧阳学文 雷柳青编排 1、下面程序的输出是________ #include 第1章C程序设计基础 ◆本章重点 1.C语言程序的结构。 2.变量与常量的表示方法。 3.运算符与表达式。 4.指针的概念及变量地址与指针的关系。 5.指针与数组的初步基本概念。 ◆本章难点 1.C语言中常量的表示方法。 2.整型数在计算机中存储的形式。 3.不同类型数据的转换。 4.转义字符。 5.各种运算符与表达式的正确理解。 6.指针的运算与数组的赋值。 1.1 C程序的结构 1.1.1 程序的概念 程序是指人们将需要计算机做的工作写成一定形式的指令,并把它们存储在计算机的内部存储器中。当人们给出命令之后,它就按指令操作顺序自动进行,把这种可以连续执行的一条条指令的集合称为“程序”。目前,正在使用的计算机程序设计语言有上百种,有些语言是面向机器的,如二进制语言,而多数是面向问题的语言。面向问题的语言都被称为计算机的“高级语言”,如C语言等。当然把C++等称为面向对象的语言。这些语言都是用接近人们习惯的自然语言和数学语言作为语言的表达形式,人们学习和操作起来感到十分方便。目前的程序设计一般可分为非结构化程序设计、结构化程序设计和面向对象的程序设计,C语言是结构化程序设计语言。 程序设计的过程一般包括: (1)问题的提出、要求及所采用的数据结构。 (2)算法的确定、程序的编制。 (3)程序的调试及修改。 (4)整理并写出文档资料。 结构化程序设计由三种结构组成:顺序结构、选择结构、循环结构。 (1)顺序结构:顺序结构的程序是一条语句接一条语句顺序地往下执行的。例如在图1.1中,先执行语句1,然后执行语句2,最后执行语句3,顺序结构 的程序是最简单的程序。 图1.1 顺序结构的程序段 (2)分支结构:若在程序执行过程中,程序的流程可由多路分支组成,根据不同的条件去执行不同的任务。例如在图1.2中程序执行到条件表达式时,首 先判断条件是否为“真“,如为真执行语句1,否则执行语句2。 图1.2 分支结构的程序段 (3)循环结构:如在程序中需要根据某项条件重复地执行某项任务若干次或直到满足或不满足某条件为止,这就构成循环结构。例如在图1.3中程序执行 到循环条件表达式时,首先判断循环条件是否为“真“,如循环条件为“真 “,执行循环语句,循环语句执行完成后,又转去判断循环条件,如循环条 件仍为真,再次执行循环语句,如此反复,直到循环条件为假,退出此循环。 大学C语言考试题库 第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. A B. B C. D D. E (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 32 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系C语言试题及答案
函数练习题(C语言)带答案
浙江大学C语言总复习题--综合
C语言练习题(带答案)
C语言基础练习100题(含答案)
浙江大学刘加海C语言课件1
C语言试题与答案
浙江大学C语言期末考试试卷-2001Bd