2012华农c语言试卷

更新时间:2024-03-18 22:58:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

华南农业大学期末考试试卷(A卷)

2012学年第1学期 考试科目: 程序设计(C语言) 考试类型:(闭卷)考试 考试时间: 120 分钟

学号 姓名 年级专业

装 题号 得分 评阅人 订一 机读 二 机读 三 四 总分 考生注意:

1、答案必须分别写在“机读卡”和“答卷”上,写在试题上不得分。

2、必须在机读卡和答卷上正确填写班级、学号、姓名等内容,否则没有考试成绩。 3、在机读卡的学生代号区只填写学号后10位。 4、考试结束,只需交“机读卡”和“答卷”,试题不用交。

线得分

一、判断题(在机读卡上答题,本大题共20小题,每小题1分,共20分)

用2B型铅笔涂答题卡!!!按题号顺序,正确的判断涂黑“A”、错误的判断涂黑“B” 1、C语言称为中级语言是因为它允许直接访问物理地址,能进行位运算,能实现汇编语言

的大部分功能,可以直接对硬件进行操作。

2、一个C程序总是从main函数开始执行,并且从main函数中结束程序。 3、一个算法具有有穷性、确定性、可行性、有零个或多个输入/输出。 4、在C程序中使用符号常量,能够增强程序的可读性,方便程序的修改。 5、C程序中使用变量不一定要遵循“先定义,再赋值,后使用”。

6、C语言可以通过调用标准库函数实现输入输出功能,也可以使用它本身提供的专门的输

入输出语句。

7、能正确表达逻辑关系0?x?10的表达式是x??0||x??10。

8、在if语句中,if后面的表达式可以是关系表达式与逻辑表达式,而不能是算术表达式。 9、在逻辑表达式的求解过程中,并非所有的逻辑运算符都被执行。 10、带有语句标号的语句的正确书写方法是“语句标号:语句”。 11、for循环语句只能用于循环次数已经确定的情况。

12、goto语句和break语句都能实现使程序执行的流程从循环体内跳至循环体外。 13、while循环语句至少无条件执行一次循环体。

试题共10页-第1页

14、数组必须先定义,然后再使用。

15、定义数组时,数组下标可以是整型常量表达式。

16、已有定义int x[5];,则该定义语句说明x是具有5个元素的一维数组,且数组元素是

x[1],x[2],x[3],x[4],x[5]。

17、一个函数中有且只能有一个return语句。

18、在一个函数中定义的静态局部变量不能被另一个函数引用。 19、宏名没有作用域,在整个文件范围内都有效。

20、在文件包含预处理语句中,被包含的文件应该是目标文件而不是源文件。

得分

二、单项选择题(在机读卡上答题,本大题20小题,每小题2分,共40分)

用2B型铅笔涂答题卡!!!按题号顺序,将答题卡上与选项对应的字母涂黑 21、在一个C程序中( )。

A)main函数出现在所有函数之前。C程序不一定都有main函数

B)main函数可以在任何地方出现。一个C程序必须有且仅有一个main函数 C)main函数必须出现在所有函数之后。一个C程序只能有一个main函数 D)main函数出现在固定位置。一个C程序可以有多个main函数 22、C语言中,下列叙述正确的是()。

A)没有逻辑类型,但有构造类型 B)既有逻辑类型也有构造类型 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 25、已有定义char s1,s2;,下面正确的语句是()

A)scanf(\ B)scanf(\C)scanf(\ D)scanf(\26、运行下面的程序,正确的输出结果是()

main()

{ float x=68.7563,y=-789.125; printf(\

试题共10页-第2页

装订线

}

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

28、设a=3,b=2,c=6,d=5,m=7,n=8,则表达式(m=a

A)0和1 B)0和8 C)1和0 D)7和8 29、下列程序的运行结果是()

main()

{ int m=8,n=34,k;

while((k=m%n)!=0) m=n,n=k; printf(\

}

A)语法错误 B)8 C)2 D)34 30、下面程序的运行结果是()

main() { int n=1,s=5;

do{ s=s*n;n++;}while(n<5); }

A)120 B)6 C)100 D)200 31、下面程序的运行结果是()

#include void main() { int i,j,sum; for(i=1;i<7;i++){ sum=1;

for(j=i;j<7;j++) sum=sum+j; } }

A)48 B)49 C)1 D)7

试题共10页-第3页

32、定义如下变量和数组

int i;

int x[3][3]={1,2,3,4,5,6,7,8,9};

for(i=0;i<3;i++) printf(\则语句的输出结果是()。 A)1 5 9 B)1 4 7 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=\C)char a[10]; strcpy(a,\ D)char a[10]=\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、若函数的调用形式如下:

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(\} main() { int a=5,b=6; fun(a,b); }

A)3,4 B)11,1 C)11,4 D)11,6 38、以下函数值的类型是()

fun(float x)

试题共10页-第4页

装订线 1.5CM

{ float y; y=3*x-4; return(y); }

A)不确定 B)float C)int D)void

39、C编译系统对文件包含命令#include\的处理通常是()。

A)编译处理之前 B)编译处理过程之中 C)程序连接时 D)程序执行的开始

40、设有以下宏定义,则执行语句x=2*(N+Y(5+1));后,x(设x为整型)的值是()

#define N 3

#define Y(n) ((N+1)*n)

A)42 B)48 C)54 D)出错

得分

三、阅读程序填空题(在答卷上答题,本大题共9小题,每空1分,共20分)1、下面程序统计1至100范围的数能被3或5整除的个数,请填空完善。

#include

void main() { int i,n;

01) ;

for(i=1;i<=100; 02) ) if( 03) ) n++; printf(\}

2、某物品原有价值为p,使用后其价值降低,价值的折扣率根据时间t(月数)确定如下:?t?3 无折扣???3?t?6 2%折扣?6?t?12 5%折扣 ??12?t?21 8%折扣??t?21 10%折扣下面程序根据输入的时间和原有的价值计算物品的现有价值,请填空完善程序。

#include

void main() { int t,d; float p;

试题共10页-第5页

scanf(\ 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; 05) : d=10; }

printf(\ 06) ); }

3、该程序利用下面公式计算∏的近似值,取前n项之和,请填空完善程序。

?/4?1?111????357

#include

void main() {

int i,n;

float t=1.0,pi=0;

scanf(\ 07) ); for(i=1;i<=n;i++){

pi+= 08) ; t= -t; }

printf(\}

4、下面程序判断输入字符串是否为回文(正读和逆读都一样的字符串),请填空完善程序。

#include

void main() { char str[80]; int n,k,flag=1; gets(str);

for(n=0;str[n]!='\\0';n++); for(k=0;k

if( 10) ) printf(\不是回文!\\n\ else printf(\是回文!\\n\ }

试题共10页-第6页

装订线

5、下面程序的功能是输出若干个字符串中长度最短的字符串,注意输入时直接按回车输入

的是空字符串,请填空完善程序。 #include #include void main()

{ char str1[80],min[80]; int k,len;

printf(\ gets(str1);

strcpy(min,str1); len=strlen(min); gets(str1);

while(str1[0]!='\\0'){ k=strlen(str1); if( 11) ){ len=k;

12) ; }

gets(str1); }

printf(\}

6、下面函数的功能实现对一维数组中元素数据由小到大顺序排序,请填空完善程序。

void sort(int a[],int n) { int i,j,t;

for(i=0;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[]) { 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!,请填空完善程序。

试题共10页-第7页

#include double fac (int n) { double k;

if(n<=0) exit(0); /*exit()返回操作系统*/ else if( n==1) k=1.0; else 17) ; return k; }

void main() {

int n;

scanf(\

printf(\ 18) ); }

9、下面程序的功能是通过键盘输入10个整数,并把其中最大的数和最小的数显示出来。 #include 19) void search(int a[],int n) { int i;

max=min=a[0]; for(i=1;i

if(a[i]>max) max=a[i]; if(a[i]

void main() {

int array[10],i; for(i=0;i<10;i++)

scanf(\ search( 20) ) printf(\ }

得分

试题共10页-第8页

四、编写程序题(在答卷上答题,本大题共3小题,第1,2小题各5分;第3小题10分,共20分)

1、编程计算分数序列

1235,,,,?前10项之和,并在屏幕上显示结果。 23582、编程显示1900年至2000年份中的闰年,每行最多显示10个。

3、根据如下main函数中函数声明格式要求,编写一个判断一个数是否为素数的函数,如

装 订 线 果是素数返回1,否则返回0。要求画出该函数的算法流程图。 #include #include void main() {

int prime(int n); int n,m=0;

for(n=100;n<=500;n++) if(prime(n)){

printf(\ m++; }

printf(\素数的个数:%d\ }

试题共10页-第9页

试题共10页-第10页

华南农业大学期末考试答卷(A卷)

2012学年第1学期 考试科目: 程序设计(C语言) 考试类型:(闭卷)考试 考试时间: 120 分钟 学号 姓名 年级专业

装题号 得分 评阅人 一 机读 二 机读 三 四 总分 一、 判断题(在机读卡上答题,本大题共20小题,每小题1分,共20分)

订用2B型铅笔涂答题卡!!!按题号顺序,正确的判断涂黑“A”、错误的判断涂黑“B” 二、 单项选择题(在机读卡上答题,本大题共20小题,每小题2分,共40分)

用2B型铅笔涂答题卡!!!按题号顺序,将答题卡上与选项对应的字母涂黑 三、 阅读程序填空题(本大题共9小题,每空1分,共20分)

线 01) 02) 03) 04) 05) 06) 07) 08) 09) 10) 11) 12) 13) 14) 15) 16) 17) 18) 19) 20) 答卷共2页-第1页

四、 编写程序题(本大题共3小题,第1、2小题各5分,第3小题10分,共20分) 1、 2、 3、

答卷共2页-第2页

本文来源:https://www.bwwdw.com/article/jqv8.html

Top