2012秋C程序设计试卷+答案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
printf("%f,%10.2f\n",x,y);
}
A)68.756303, -789.12 B)68.756303, -789.13
C)68.7563, -789.13 D)68.7563,-789.12
27、下列表达式中,值为0的表达式是()
A)3!=0 B)3!=3>4 C)3>4==0 D)6>5>4
05): d=10;
}
printf("Price=%f\n",06));
}
3、该程序利用下面公式计算∏的近似值,取前n项之和,请填空完善程序。
#include<stdio.h>
voidmain()
{
int i,n;
float t=1.0,pi=0;
scanf("%d",07));
for(i=1;i<=n;i++){
华南农业大学期末考试试卷(A卷)
2012学年第1学期考试科目:程序设计(C语言)
考试类型:(闭卷)考试考试时间:120分钟
学号姓名年级专业
题号
一
二
三
四
总分
得分
评阅人
机读
机读
考生注意:
1、答案必须分别写在“机读卡”和“答卷”上,写在试题上不得分。
2、必须在机读卡和答卷上正确填写班级、学号、姓名等内容,否则没有考试成绩。
C)有逻辑类型,但没有构造类型D)没有逻辑类型也没有构造类型
23、下列转义字符中,错误的是()
A)'\"'B)'\031' C)'\b' D)'\0xa5'
24、已知梯形的上底为a,下底为b,高为h,用C语言写的正确的面积公式是()。
A)1/2*(a+b)*h B)1.0/2*(a+b)*h C)1.0/2.0(a+b)h D)1.0\2*a+b*h
voidmain()
{int i,n;
01);
for(i=1;i<=100;02))
if(03))n++;
printf("n=%d",n);
}
2、某物品原有价值为p,使用后其价值降低,价值的折扣率根据时间t(月数)确定如下:
下面程序根据输入的时间和原有的价值计算物品的现有价值,请填空完善程序。
#include<stdio.h>
for(k=0;k<n/2Leabharlann Baiduk++)
if(09)){
flag=0;
break;}
if(10)) printf("不是回文!\n");
else printf("是回文!\n");
}
5、下面程序的功能是输出若干个字符串中长度最短的字符串,注意输入时直接按回车输入的是空字符串,请填空完善程序。
#include<string.h>
#include<stdio.h>
voidmain()
{ char str1[80],min[80];
intk,len;
printf("input string str1:\n");
gets(str1);
strcpy(min,str1);
len=strlen(min);
gets(str1);
while(str1[0]!='\0'){
34、若有int s[4]={1,2,3,4};,则s[s[0]+2*s[2]-s[3]]的值是()
A)1 B)2 C)3 D)4
35、C语言程序的三种基本结构是()
A)嵌套结构、递归结构、循环结构B)递归结构、循环机构、转移结构
C)顺序结构、选择结构、循环结构D)循环结构、转移结构、顺序结构
36、若函数的调用形式如下:
#include<stdio.h>
19)
void search(int a[],int n)
{ int i;
max=min=a[0];
for(i=1;i<n;i++){
if(a[i]>max) max=a[i];
if(a[i]<min) min=a[i];
}
}
void main()
{
int array[10],i;
25、已有定义char s1,s2;,下面正确的语句是()
A)scanf("%s%c",s1,s2); B)scanf("%s%c",s1,&s2);
C)scanf("%d%c",&s1,&s2); D)scanf("%c%c",s1,s2);
26、运行下面的程序,正确的输出结果是()
main()
{ float x=68.7563,y=-789.125;
}
A)语法错误B)8C)2D)34
30、下面程序的运行结果是()
main()
{ intn=1,s=5;
do{s=s*n;n++;}while(n<5);
}
A)120B)6C)100D)200
31、下面程序的运行结果是()
#include<stdio.h>
voidmain()
{int i,j,sum;
for(i=0;i<10;i++)
scanf("%d",&array[i]);
search(20))
printf("max=%d,min=%d\n",max,min);
}
得分
四、
1、编程计算分数序列 前10项之和,并在屏幕上显示结果。
2、编程显示1900年至2000年份中的闰年,每行最多显示10个。
2、一个C程序总是从main函数开始执行,并且从main函数中结束程序。
3、一个算法具有有穷性、确定性、可行性、有零个或多个输入/输出。
4、在C程序中使用符号常量,能够增强程序的可读性,方便程序的修改。
5、C程序中使用变量不一定要遵循“先定义,再赋值,后使用”。
6、C语言可以通过调用标准库函数实现输入输出功能,也可以使用它本身提供的专门的输入输出语句。
}
A)3,4 B)11,1 C)11,4 D)11,6
38、以下函数值的类型是()
fun(float x)
{ float y;
y=3*x-4;
return(y);
}
A)不确定B)float C)int D)void
39、C编译系统对文件包含命令#include"file.h"的处理通常是()。
A)编译处理之前B)编译处理过程之中
13、while循环语句至少无条件执行一次循环体。
14、数组必须先定义,然后再使用。
15、定义数组时,数组下标可以是整型常量表达式。
16、已有定义int x[5];,则该定义语句说明x是具有5个元素的一维数组,且数组元素是x[1],x[2],x[3],x[4],x[5]。
17、一个函数中有且只能有一个return语句。
28、设a=3,b=2,c=6,d=5,m=7,n=8,则表达式(m=a<b)&&(n=c-d)运算后,m,n的值分别是()
A)0和1B)0和8C)1和0D)7和8
29、下列程序的运行结果是()
main()
{ intm=8,n=34,k;
while((k=m%n)!=0)m=n,n=k;
printf("%d ",n);
f((x1,x2,x3),(y1,y2))
则函数形参的个数是()。
A)2 B)3 C)4 D)5
37、执行下列程序后的输出结果是()。
int a=3,b=4;
void fun(int x1,int x2)
{
printf("%d,%d",x1+x2,b);
}
main()
{ int a=5,b=6;
fun(a,b);
k=strlen(str1);
if(11)){
len=k;
12);
}
gets(str1);
}
printf("len=%d,min=%s\n",len,min);
}
6、下面函数的功能实现对一维数组中元素数据由小到大顺序排序,请填空完善程序。
void sort(int a[],int n)
{ int i,j,t;
A)1 5 9 B)1 47 C)3 5 7 D)3 6 9
33、不能把字符串Hello!赋给数组a的语句是()
A)char a[10]={'H','e','l','l','o','!'}; B)char a[10]; a="Hello!";
C)char a[10]; strcpy(a,"Hello!");D)char a[10]="Hello!";
for(i=1;i<7;i++){
sum=1;
for(j=i;j<7;j++) sum=sum+j;
}
}
A)48B)49C)1D)7
32、定义如下变量和数组
int i;
int x[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++) printf("%d ",x[i][2-i]);则语句的输出结果是()。
voidmain()
{ int t,d;
float p;
scanf("%d,%f",&t,&p);
switch(04)){
case 0: d=0;break;
case 1: d=2;break;
case 2:
case 3:d=5;break;
case 4:
case 5:
case 6: d=8;break;
for(i=0;i<n-1;i++)
for(j=1;j<13);j++)
if(14)){
t=a[j-1];
a[j-1]=a[j];
a[j]=t;
}
}
7、下列函数str_cat()的功能是连接两个字符串,请填空完善程序。
void str_cat(char str1[],char str2[2],char str[])
if(n<=0) exit(0); /*exit()返回操作系统*/
else if(n==1) k=1.0;
else17);
return k;
}
voidmain()
{
int n;
scanf("%d",&n);
printf("FAC(%d)=%lf\n",n,18));
}
9、下面程序的功能是通过键盘输入10个整数,并把其中最大的数和最小的数显示出来。
3、在机读卡的学生代号区只填写学号后10位。
4、考试结束,只需交“机读卡”和“答卷”,试题不用交。
得分
一
用2B型铅笔涂答题卡!!!按题号顺序,正确的判断涂黑“A”、错误的判断涂黑“B”
1、C语言称为中级语言是因为它允许直接访问物理地址,能进行位运算,能实现汇编语言的大部分功能,可以直接对硬件进行操作。
pi+=08);
t= -t;
}
printf("pi=%f",pi*4);
}
4、下面程序判断输入字符串是否为回文(正读和逆读都一样的字符串),请填空完善程序。
#include<stdio.h>
voidmain()
{ char str[80];
int n,k,flag=1;
gets(str);
for(n=0;str[n]!='\0';n++);
7、能正确表达逻辑关系 的表达式是 。
8、在if语句中,if后面的表达式可以是关系表达式与逻辑表达式,而不能是算术表达式。
9、在逻辑表达式的求解过程中,并非所有的逻辑运算符都被执行。
10、带有语句标号的语句的正确书写方法是“语句标号:语句”。
11、for循环语句只能用于循环次数已经确定的情况。
12、goto语句和break语句都能实现使程序执行的流程从循环体内跳至循环体外。
B)main函数可以在任何地方出现。一个C程序必须有且仅有一个main函数
C)main函数必须出现在所有函数之后。一个C程序只能有一个main函数
D)main函数出现在固定位置。一个C程序可以有多个main函数
22、C语言中,下列叙述正确的是()。
A)没有逻辑类型,但有构造类型B)既有逻辑类型也有构造类型
18、在一个函数中定义的静态局部变量不能被另一个函数引用。
19、宏名没有作用域,在整个文件范围内都有效。
20、在文件包含预处理语句中,被包含的文件应该是目标文件而不是源文件。
得分
二
用2B型铅笔涂答题卡!!!按题号顺序,将答题卡上与选项对应的字母涂黑
21、在一个C程序中()。
A)main函数出现在所有函数之前。C程序不一定都有main函数
C)程序连接时D)程序执行的开始
40、设有以下宏定义,则执行语句x=2*(N+Y(5+1));后,x(设x为整型)的值是()
#define N 3
#define Y(n) ((N+1)*n)
A)42B)48C)54D)出错
得分
三、
1、下面程序统计1至100范围的数能被3或5整除的个数,请填空完善。
#include<stdio.h>
{ int i,j;
for(i=0;str1[i]!='\0';i++) str[i]=str1[i];
for(j=0;str2[j]!='\0';j++)
15);
16);
}
8、下面程序的功能是用递归方法计算n!,请填空完善程序。
#include<stdio.h>
double fac(int n)
{ double k;
3、根据如下main函数中函数声明格式要求,编写一个判断一个数是否为素数的函数,如果是素数返回1,否则返回0。要求画出该函数的算法流程图。
#include<stdio.h>
#include<math.h>
}
A)68.756303, -789.12 B)68.756303, -789.13
C)68.7563, -789.13 D)68.7563,-789.12
27、下列表达式中,值为0的表达式是()
A)3!=0 B)3!=3>4 C)3>4==0 D)6>5>4
05): d=10;
}
printf("Price=%f\n",06));
}
3、该程序利用下面公式计算∏的近似值,取前n项之和,请填空完善程序。
#include<stdio.h>
voidmain()
{
int i,n;
float t=1.0,pi=0;
scanf("%d",07));
for(i=1;i<=n;i++){
华南农业大学期末考试试卷(A卷)
2012学年第1学期考试科目:程序设计(C语言)
考试类型:(闭卷)考试考试时间:120分钟
学号姓名年级专业
题号
一
二
三
四
总分
得分
评阅人
机读
机读
考生注意:
1、答案必须分别写在“机读卡”和“答卷”上,写在试题上不得分。
2、必须在机读卡和答卷上正确填写班级、学号、姓名等内容,否则没有考试成绩。
C)有逻辑类型,但没有构造类型D)没有逻辑类型也没有构造类型
23、下列转义字符中,错误的是()
A)'\"'B)'\031' C)'\b' D)'\0xa5'
24、已知梯形的上底为a,下底为b,高为h,用C语言写的正确的面积公式是()。
A)1/2*(a+b)*h B)1.0/2*(a+b)*h C)1.0/2.0(a+b)h D)1.0\2*a+b*h
voidmain()
{int i,n;
01);
for(i=1;i<=100;02))
if(03))n++;
printf("n=%d",n);
}
2、某物品原有价值为p,使用后其价值降低,价值的折扣率根据时间t(月数)确定如下:
下面程序根据输入的时间和原有的价值计算物品的现有价值,请填空完善程序。
#include<stdio.h>
for(k=0;k<n/2Leabharlann Baiduk++)
if(09)){
flag=0;
break;}
if(10)) printf("不是回文!\n");
else printf("是回文!\n");
}
5、下面程序的功能是输出若干个字符串中长度最短的字符串,注意输入时直接按回车输入的是空字符串,请填空完善程序。
#include<string.h>
#include<stdio.h>
voidmain()
{ char str1[80],min[80];
intk,len;
printf("input string str1:\n");
gets(str1);
strcpy(min,str1);
len=strlen(min);
gets(str1);
while(str1[0]!='\0'){
34、若有int s[4]={1,2,3,4};,则s[s[0]+2*s[2]-s[3]]的值是()
A)1 B)2 C)3 D)4
35、C语言程序的三种基本结构是()
A)嵌套结构、递归结构、循环结构B)递归结构、循环机构、转移结构
C)顺序结构、选择结构、循环结构D)循环结构、转移结构、顺序结构
36、若函数的调用形式如下:
#include<stdio.h>
19)
void search(int a[],int n)
{ int i;
max=min=a[0];
for(i=1;i<n;i++){
if(a[i]>max) max=a[i];
if(a[i]<min) min=a[i];
}
}
void main()
{
int array[10],i;
25、已有定义char s1,s2;,下面正确的语句是()
A)scanf("%s%c",s1,s2); B)scanf("%s%c",s1,&s2);
C)scanf("%d%c",&s1,&s2); D)scanf("%c%c",s1,s2);
26、运行下面的程序,正确的输出结果是()
main()
{ float x=68.7563,y=-789.125;
}
A)语法错误B)8C)2D)34
30、下面程序的运行结果是()
main()
{ intn=1,s=5;
do{s=s*n;n++;}while(n<5);
}
A)120B)6C)100D)200
31、下面程序的运行结果是()
#include<stdio.h>
voidmain()
{int i,j,sum;
for(i=0;i<10;i++)
scanf("%d",&array[i]);
search(20))
printf("max=%d,min=%d\n",max,min);
}
得分
四、
1、编程计算分数序列 前10项之和,并在屏幕上显示结果。
2、编程显示1900年至2000年份中的闰年,每行最多显示10个。
2、一个C程序总是从main函数开始执行,并且从main函数中结束程序。
3、一个算法具有有穷性、确定性、可行性、有零个或多个输入/输出。
4、在C程序中使用符号常量,能够增强程序的可读性,方便程序的修改。
5、C程序中使用变量不一定要遵循“先定义,再赋值,后使用”。
6、C语言可以通过调用标准库函数实现输入输出功能,也可以使用它本身提供的专门的输入输出语句。
}
A)3,4 B)11,1 C)11,4 D)11,6
38、以下函数值的类型是()
fun(float x)
{ float y;
y=3*x-4;
return(y);
}
A)不确定B)float C)int D)void
39、C编译系统对文件包含命令#include"file.h"的处理通常是()。
A)编译处理之前B)编译处理过程之中
13、while循环语句至少无条件执行一次循环体。
14、数组必须先定义,然后再使用。
15、定义数组时,数组下标可以是整型常量表达式。
16、已有定义int x[5];,则该定义语句说明x是具有5个元素的一维数组,且数组元素是x[1],x[2],x[3],x[4],x[5]。
17、一个函数中有且只能有一个return语句。
28、设a=3,b=2,c=6,d=5,m=7,n=8,则表达式(m=a<b)&&(n=c-d)运算后,m,n的值分别是()
A)0和1B)0和8C)1和0D)7和8
29、下列程序的运行结果是()
main()
{ intm=8,n=34,k;
while((k=m%n)!=0)m=n,n=k;
printf("%d ",n);
f((x1,x2,x3),(y1,y2))
则函数形参的个数是()。
A)2 B)3 C)4 D)5
37、执行下列程序后的输出结果是()。
int a=3,b=4;
void fun(int x1,int x2)
{
printf("%d,%d",x1+x2,b);
}
main()
{ int a=5,b=6;
fun(a,b);
k=strlen(str1);
if(11)){
len=k;
12);
}
gets(str1);
}
printf("len=%d,min=%s\n",len,min);
}
6、下面函数的功能实现对一维数组中元素数据由小到大顺序排序,请填空完善程序。
void sort(int a[],int n)
{ int i,j,t;
A)1 5 9 B)1 47 C)3 5 7 D)3 6 9
33、不能把字符串Hello!赋给数组a的语句是()
A)char a[10]={'H','e','l','l','o','!'}; B)char a[10]; a="Hello!";
C)char a[10]; strcpy(a,"Hello!");D)char a[10]="Hello!";
for(i=1;i<7;i++){
sum=1;
for(j=i;j<7;j++) sum=sum+j;
}
}
A)48B)49C)1D)7
32、定义如下变量和数组
int i;
int x[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++) printf("%d ",x[i][2-i]);则语句的输出结果是()。
voidmain()
{ int t,d;
float p;
scanf("%d,%f",&t,&p);
switch(04)){
case 0: d=0;break;
case 1: d=2;break;
case 2:
case 3:d=5;break;
case 4:
case 5:
case 6: d=8;break;
for(i=0;i<n-1;i++)
for(j=1;j<13);j++)
if(14)){
t=a[j-1];
a[j-1]=a[j];
a[j]=t;
}
}
7、下列函数str_cat()的功能是连接两个字符串,请填空完善程序。
void str_cat(char str1[],char str2[2],char str[])
if(n<=0) exit(0); /*exit()返回操作系统*/
else if(n==1) k=1.0;
else17);
return k;
}
voidmain()
{
int n;
scanf("%d",&n);
printf("FAC(%d)=%lf\n",n,18));
}
9、下面程序的功能是通过键盘输入10个整数,并把其中最大的数和最小的数显示出来。
3、在机读卡的学生代号区只填写学号后10位。
4、考试结束,只需交“机读卡”和“答卷”,试题不用交。
得分
一
用2B型铅笔涂答题卡!!!按题号顺序,正确的判断涂黑“A”、错误的判断涂黑“B”
1、C语言称为中级语言是因为它允许直接访问物理地址,能进行位运算,能实现汇编语言的大部分功能,可以直接对硬件进行操作。
pi+=08);
t= -t;
}
printf("pi=%f",pi*4);
}
4、下面程序判断输入字符串是否为回文(正读和逆读都一样的字符串),请填空完善程序。
#include<stdio.h>
voidmain()
{ char str[80];
int n,k,flag=1;
gets(str);
for(n=0;str[n]!='\0';n++);
7、能正确表达逻辑关系 的表达式是 。
8、在if语句中,if后面的表达式可以是关系表达式与逻辑表达式,而不能是算术表达式。
9、在逻辑表达式的求解过程中,并非所有的逻辑运算符都被执行。
10、带有语句标号的语句的正确书写方法是“语句标号:语句”。
11、for循环语句只能用于循环次数已经确定的情况。
12、goto语句和break语句都能实现使程序执行的流程从循环体内跳至循环体外。
B)main函数可以在任何地方出现。一个C程序必须有且仅有一个main函数
C)main函数必须出现在所有函数之后。一个C程序只能有一个main函数
D)main函数出现在固定位置。一个C程序可以有多个main函数
22、C语言中,下列叙述正确的是()。
A)没有逻辑类型,但有构造类型B)既有逻辑类型也有构造类型
18、在一个函数中定义的静态局部变量不能被另一个函数引用。
19、宏名没有作用域,在整个文件范围内都有效。
20、在文件包含预处理语句中,被包含的文件应该是目标文件而不是源文件。
得分
二
用2B型铅笔涂答题卡!!!按题号顺序,将答题卡上与选项对应的字母涂黑
21、在一个C程序中()。
A)main函数出现在所有函数之前。C程序不一定都有main函数
C)程序连接时D)程序执行的开始
40、设有以下宏定义,则执行语句x=2*(N+Y(5+1));后,x(设x为整型)的值是()
#define N 3
#define Y(n) ((N+1)*n)
A)42B)48C)54D)出错
得分
三、
1、下面程序统计1至100范围的数能被3或5整除的个数,请填空完善。
#include<stdio.h>
{ int i,j;
for(i=0;str1[i]!='\0';i++) str[i]=str1[i];
for(j=0;str2[j]!='\0';j++)
15);
16);
}
8、下面程序的功能是用递归方法计算n!,请填空完善程序。
#include<stdio.h>
double fac(int n)
{ double k;
3、根据如下main函数中函数声明格式要求,编写一个判断一个数是否为素数的函数,如果是素数返回1,否则返回0。要求画出该函数的算法流程图。
#include<stdio.h>
#include<math.h>