华南农业大学C语言.docx
《华南农业大学C语言.docx》由会员分享,可在线阅读,更多相关《华南农业大学C语言.docx(79页珍藏版)》请在冰豆网上搜索。
![华南农业大学C语言.docx](https://file1.bdocx.com/fileroot1/2023-1/7/858524c4-a9bf-4af6-aa07-58d0589fd584/858524c4-a9bf-4af6-aa07-58d0589fd5841.gif)
华南农业大学C语言
华南农业大学2002《程序设计C语言》考卷
1
华南农业大学《程序设计C语言》考卷(2003.1)
考试须知:
1.答案必须写在“答题卡”上,写在试卷上不得分。
2.考试结束时,只回收答题卡,不回收试卷。
3.必须在答题卡上正确填写班级、学号、姓名等内容。
一、选择题(每小题2分,共20分)
1C语言程序的三种基本结构是
(1)
A、顺序结构、选择结构、循环结构B、递归结构、循环结构、转移结构
C、嵌套结构、递归结构、循环结构D、循环结构、转移结构、顺序结构
2合法的数组定义是
A、inta[]=“string”B、inta[5]={0,1,2,3,4,5}
C、chars=“string”D、chara[]={0,1,2,3,4,5}
3为了避免嵌套的条件语句ifelse的二义性,C语言规定:
else与(3)配对。
A、缩排位置相同的ifB、其之前最近的未匹配的if
C、其之后最近的ifD、同一行的if
4数组名作为参数传递给函数,作为该参数的数组名被处理为(4)
A、该数组的长度B、该数组的元素个数
C、该数组中元素的值D、该数组的首地址
5一个可执行的C程序的开始执行点是(5)
A、程序中第一个语句B、包含文件的第一个函数
C、main()函数D、程序中的第一个函数
6C语言用(6)表示逻辑“真”值。
A、trueB、1C、非0整数值D、整数0
7运行完下面的C语言程序段后,k的值是(7)。
intk=4;
(k++)+(k++)+(k++)
A、4B、5C、6D、7
8在C语言中,提供的合法保留字是(8)
A、swicthB、cherC、CaseD、default
9若有定义chars[10]=“abcd”,则语句printf(“%s”,s)的输出结果是(u表示空格)
(9):
A、abcdB、aC、abcduuuuuuuD、s
10在C语言中,合法的字符常量是(10)
A、’\084’B、’\x43’C、’ab’D、”\0”
华南农业大学2002《程序设计C语言》考卷
2
二、是非判断题(每小题2分,共20分)
1C语言是以函数为程序的基本单位的。
(对)
2字符常量是用一对双引号括起来的一个字符。
(错)
3字符串的结束标志是’\0’。
(对)
4对于“do{循环体}while(循环条件);”,这个循环结构有可能一次循环体的内
容都无法执行。
(错)
5example和Example是两个完全不同的标识符。
(对)
6C语言中,若函数说明未给出返回值类型,系统默认为void类型。
(错)
7C语言本身不提供输入、输入语句,需要由库函数给出。
(对)
8在C语言中,有调用关系的所有函数必须放在同一个源程序文件中。
(错__________)
9C语言中,32768是不正确的int类型常数。
(对)
10在一个函数内定义的变量只能在本函数范围内有效。
(对)
三、写出下列程序段的输出结果(每小题6分,共30分)
1.有下列程序段,请写出运行结果。
func(intx)
{inty=13;
x=x+y;
returnx;
}
main()
{intx=3;
func(x);
printf("%d",x+x);
}
输出:
6
2.有下面程序段,请写出运行结果
main()
{intsum,j;
for(j=1;j<=100;j++){sum=0;sum=sum+j;}
printf(“sumis%d”,sum);
}
输出:
华南农业大学2002《程序设计C语言》考卷
3
sumis100
3.有下面程序段,请写出运行结果
main()
{
floata=3.4;
intb;
b=a*3;
printf(“%d”,b);
}
输出:
10
4.有以下程序,请写出运行结果。
main()
{intx,n;
for(n=1;n<=50;n++)
{x=n;
if(x%2==0)
if(x%3==0)
if(x%7==0)
printf("%d",n);
}
}
输出:
42
5.以下程序,请写出运行结果
main()
{chargrade;
grade=’B’;
switch(grade)
{case‘A’:
printf(“excellent”);
case‘B’:
printf(“pass”);
case‘C’:
printf(“failure”);
}
}
输出:
passfailure
华南农业大学2002《程序设计C语言》考卷
4
四、编程题(每题10分,共30分)
1.键盘输入1个字符串,将其内部的大写字母转换成对应的小写字母,然后输出。
提示:
字母A的ASC码为65,字母a的ASC码为97。
2.编写判断1个正整数是否素数的函数。
要求在主函数输入原始数据并输出判断
结论。
提示:
判断某个正整数N是素数的标准是,除了1与N以外,不能被任何1个
正整数所整除。
3.求数列1!
+2!
+…+10!
的值。
华南农业大学2004.1《C语言程序设计》考卷
考试须知:
4.答案必须写在“答题卡”上,写在试卷上不得分。
5.考试结束时,只回收答题卡,不回收试卷。
6.必须在答题卡上正确填写班级、学号、姓名等内容,否则没有考试成绩。
一、单项选择题(20分)
1、C程序中主函数main的位置是。
A)必须在其他函数之前
B)可以任意安排
C)必须在其它函数之后
D)必须在程序的中间
2、下列C常量中不合法的是。
A)‘8’B)“8”C)‘800’D)“800”
3、在C语言中,一个CHAR变量占字节。
A)1B)2C)4D)8
4、在switch语句中,执行完一个case分支后要是流程跳出switch结构,应使用
语句。
A)continueB)break
C)elseD)return
5、调用scanf(“%d,%d”,&a,&b);时,正确的键盘输入是
A)12,23B)a=12,b=23
C)12:
23D)1223
6、C语言中,若对函数类型未加显示说明,则函数的隐含类型为类型
A)voidB)double
华南农业大学2002《程序设计C语言》考卷
5
C)intD)char
7、putchar函数可以向终端输出一个
A)voidB)double
C)intD)char
8、为了避免嵌套if..else…语句的二义性,C语言规定ELSE总是与配
对。
A)缩排位置相同的IF
B)在其之前的未配对的IF
C)在其之前的未配对的最近的IF
D)同一行上的IF
9、若str,str1,str2均为字符串,则strcopy(str,strcat(str1,str2))的功能是
。
A)将字符串str2连接到字符串str1后再复制到字符串str中
B)将字符串str2复制到字符串str1后再复制到字符串str中
C)将字符串str2复制到字符串str1后再连接到字符串str中
D)将字符串str2连接到字符串str1后再与str比较
10、设inta=15,b=9;经过赋值语句a=a/(a-b);后a的值
A)3B)–8C)2D)2.5
答案:
(1)B
(2)C(3)A(4)B(5)A
(6)C(7)D(8)C(9)A(10)C
二、填空题(20分)
1、结构化程序的3种基本结构是、、
2、能实现C程序循环结构的语句包括、、
3、按优先级从高到低排列运算符:
!
、&&、||排列结果
4、假设structstudent
{intnum;
floatscore;
}stu_1;
则结构体类型名与结构体变量明分别是与
5、strlen(“welcome\0”)的结果是
6、字符常量的概念是
7、函数体一般包括声明部分与
8、C的源程序经过后生成目标程序
9、设inta,b;则能正确表示代数式1/(ab)的C语言表达式是
10、变量的指针的概念是
华南农业大学2002《程序设计C语言》考卷
6
答案:
(1)顺序结构、选择结构、循环结构
(2)do~_while、for、while
(3)!
>&&>||(4)structstudent与stu_1
(5)7(6)用单引号‘’界定的字符
(7)执行部分(8)编译
(9)1.0/(a*b)或1/((float)a*b)(10)存放变量的地址
三、程序填空题(20分)
1.判断某个大于2的整数是否是素数。
判断整数M是否是素数的标准是:
除了1与M以外,M不能被任何一个整数所整除。
main()
{intn,i,flag;
flag=1;
scanf(“%d”,
(1));
for(
(2))
if(n%i==0)
{
flag=0;
(3);
}
if(flag!
=0)
printf(“yes”);
else
printf(“no”);
}
答案:
(1)&n
(2)i=2;i2.一个函数如下,用程序实现之。
main()
{
floatx,y;
scanf(“%f”,&x);
if(x<2)
⎪⎩
⎪í
ì
->=
-<=<
<
=
411(10)
31(210)
(2)
xx
xx
xx
y
华南农业大学2002《程序设计C语言》考卷
7
y=x;
else
if
(1)
y=
(2);
else
y=(3);
printf(“y=%f”,y);
}
答案:
(1)(x<10)
(2)3*x-1(3)4*x-11(此题若先写大于
等于10的分支同样正确,但若表达式少乘号不得分)
四、写出程序运行的输出结果(20分)
1.main()
{inta,b;
int*p_1,*p_2;
a=100;
b=10;
p_1=&a;
p_2=&b;
printf(“%d,%d”,a,b);
printf(“%d,%d”,*p_1,*p_2);
}
程序的运行结果是:
100,10
100,10
2.intm,n;
intmove(inty)
{
m=m+1;
n=n+2;
y=m+n;
return(y);
}
main()
华南农业大学2002《程序设计C语言》考卷
8
{inta,b=10;
m=20;
n=5;
a=move(b);
printf(“a=%d,b=%d,m=%d,n=%d”,a,b,m,n);
}
程序的运行结果是:
a=28,b=10,m=21,n=7
3.#include
main()
{
intnum,dignit,count=0;
num=1246;
while(num!
=0)
{dignit=num%10;
num=num/10;
count=count+dignit;
}
printf(“%d\n”,count);
}
程序的运行结果是:
13
4.main()
{chara[10]=”ABC123xyz”;
inti;
for(i=0;iif(a[i]>=97&&a[i]<=125)
printf(“%c”,a[i]);
}
备注:
字母A的ASC码是65,字母a的ASC码是97,数字1的ASC码是49。
程序的运行结果是:
xyz
五、编程(20分)(编程题答案略,请自行练习)
1、编写程序求1*2+3*4+……+99*100
华南农业大学2002《程序设计C语言》考卷
9
2、已知某个班30名学生的学号(3位整数)及某门课程的考试成绩(包含1位
小数),要求编写程序完成如下功能:
1)逐个显示考试成绩在90分以上(包括90分)的学生学号及考试成绩
2)显示该课程的平均成绩
编程要求原始数据使用键盘输入并以数组形式存储。
华南农业大学期末考试试卷(B卷)
2004学年第1学期(2005.1)考试科目:
程序设计
考试类型:
(闭卷)考试时间:
120分钟
班级学号姓名
考试须知:
7.答案必须写在“答题卡”上,写在试卷上不得分。
8.考试结束时,只回收答题卡,不回收试卷。
3.必须在答题卡上正确填写班级、学号、姓名等内容,否则没有考试成绩。
一、单项选择题(每小题2分,共30分)
1、下面标识符中,不合法的用户标识符为()
A)PadB)a_10C)_12abD)int
2、调用scanf(“%d,%d”,&a,&b);时,正确的键盘输入是()
A)10,20B)a=10,b=20
C)10:
20D)1020
3、能表示条件0≤x≤100的表达式是()
A)0<=x<=100B.x>=0,x<=100
C)0≤x≤100D)x>=0&&x<=100
4、设有:
inta=1,b=2,c=3,d=4,m=2,n=2;
执行(m=a>b)&&(n=c>d)后n的值为()
A)0B)1C)2D)3
5、下面不正确的字符串常量是()
A)'abc'B)"12'12"C)"0"D)""
6、对字符串“Cat”进行完整赋值的操作是()
A)chars[3]={'C','a','t'};B)chars[]="Cat";
C)chars[3]={"Cat"};D)chars[3];s="Cat";
7、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是
华南农业大学2002《程序设计C语言》考卷
10
()
A)–3B)9C)–12D)6
8、设x、y均为整型变量,且x=10,y=3,则以下语句的输出结果是
printf(“%d,%d\n”,x--,--y);()
A)10,3B)9,3C)9,2D)10,2
9、在TurboC中,设inta[10];假设数组a开始于内存2000单元,则a[2]的
存储始于()
A)2002B)2004C)2006D)2008
10、在C语言中,引用数组元素时,其数组下标的数据类型允许是()
A)整型常量B)整型表达式
C)整型常量或整型表达式D)任何类型的表达式
11、若有ints[4]={1,2,3,4};,则s[s[0]+2*s[2]-s[3]]的值是()
A)1B)2C)3D)4
12、用数组名作为函数的实参时,传递给形参的是()
A)数_______组的首地址B)数组的第1个元素
C)数组中的全部元素D)数组的元素个数
13、以下程序的输出结果是()
main()
{charch[3][5]={"AAAA","BBB","CC"};
printf(“%s”,ch[1]);
}
A)"AAAA"B)"BBB"C)"BBBCC"D)"CC"
14、有以下程序段
intk=0;
while(k=1)k++;
while循环执行的次数是()
A)无限次B)有语法错,不能执行
C)一次也不执行D)执行1次
15、设有以下说明语句
structstu
{inta;
floatb;
}stutype;
则下面的叙述不正确的是()
A)struct是结构体类型的关键字
B)structstu是用户定义的结构体类型
华南农业大学2002《程序设计C语言》考卷
11
C)stutype是用户定义的结构体类型名
D)a和b都是结构体成员名
华南农业大学2002《程序设计C语言》考卷
12
二、判断题(对的打“√”,错的打“×”,每小题1分,共10分)
1、C程序执行的入口是main函数,所以main函数必须放在程序的开头。
2、注释内容太多会影响程序的执行效率。
3、C语言规定,标识符中的字母一般区分大、小写。
4、字符常量是用一对双引号括起来的一个字符。
5、若定义的函数没有参数,则函数名后的圆括号可以省略。
6、在赋值表达式中,赋值号左边的变量和右边的表达式之值的数据类型可以
不相同。
7、循环体中continue语句的作用是结束整个循环的执行。
8、函数的实参和形参可以是相同的名字。
9、对于“do{循环体}while(循环条件);”,这个循环结构有可能一次循环体的
内容都无法执行。
10、字符数组中的最后一个字符必须是'\0'。
三、写出下列程序段的输出结果(每小题5分,共20分)
1、有下列程序段,请写出运行结果。
main()
{intsum,j;
for(j=1;j<=10;j++)
{sum=5;
sum=sum+j;
}
printf(“sumis%d”,sum);
}
2、有下列程序段,请写出运行结果。
intf1(intx)
{staticintz=3,y=0;
y++;
z++;
return(x+y+z);
}
main()
{inta=1,k;
for(k=0;k<3;k++)printf(“%4d”,f1(a));
}
3、有下列程序段,请写出运行结果(注:
“_”代表空格)
华南农业大学2002《程序设计C语言》考卷
13
main()
{chara[]="This_is_a_C_program.";
char*p=a;
p=p+8;
printf(“%s”,p);
}
4、有下列程序段,请写出运行结果。
main()
{
inta=0,i;
for(i=0;i<5;i++)
{
switch(i)
{
case0:
case3:
a+=2;
case1:
case2:
a+=3;
default:
a+=5;
}
printf(“%5d”,a);
}
}
四、程序填空题(每空2分,共20分)
1、以下程序的功能是找出x、y、z三个数中的最小值。
main()
{intx=4,y=5,z=8;
intu,v;
u=x___①__;
v=u__②___;
printf(“%d”,v);
}
2、打印9×9乘法表。
输出格式要求为:
华南农业大学2002《程序设计C语言》考卷
14
1*1=1
2*1=12*2=4
3*1=33*2=63*3=9
………………………………………
__________main()
{intm,n;
for(m=1;m<=9;m++)
{
for(n=1;____③____;n++)
printf(“④”,m,n,m*n);
_____⑤______;
}
}
3、下面程序读入10个学生的成绩,统计及格学生的个数并计算平均分。
请填
空:
main()
{inti,count=0;
floata[10],sum=0,ave;
for(i=0;i<10;i++)
scanf(“%f”,⑥);
for(i=0;i<10;i++)
{
if_____⑦____count=count+1;
____⑧___;
}
ave=sum/10;
printf(“count=%d,ave=%f”,count,ave);
}
华南农业大学2002《程序设计C语言》考卷
15
4、下面程序的功能是求出数组a中各相邻两个元素的和,并将这些和存在数
组b中,按每行3个元素的形式输出。
例如:
a[0]+a[1]的值存入b[1],a[1]+a[2]的
值存入b[2]……,b[0]不用。
请填空。
main()
{inta[10],b[10],i;
for(i=0;i<10;i++)
scanf(“%d”,&a[i]);
for(i=1;i<10;i++)
_____⑨_____
for(i=1;i<10;i++)
{printf(“%3d”,b[i]);
if(___⑩_____==0)printf(“\n”);
}
}
五、编程题(20分)
1、有数列sum=1+2+3+4+5+6+……,编程实现:
1)编写一个函数,求sum的前n项和。
例如:
n=3时,sum=1+2+3=6。
2)在主函数中输入n,调用上面的函数并输出结果。
2、输入一串字符(长度小于80个字符),编程实现:
1)统计其中字母的个数并输出结果。
2)将其中的数字字符对应的整数值加起来,并输出结果。
如:
a45b8&*3,
则是4+5+8+3,结果为20。
要求画出实现此功能的流程图。
(传统流
程图与N-S流程图任选其一)
提示:
0的ASCII码为48,9的ASCII码为57。
华南农业大学2002《程序设计C语言》考卷
16
华南农业大学期末考试试卷(B卷)
2004学年第1学期考试科目:
程序设计
考试类型:
(闭卷)考试时间:
120分钟
班级学号姓名
题号一二三四五总分
得分
评阅人
一、单项选择题(每小题2分,共30分)
1D2A3D4C5A
6B7C8D9B10C
11D12A13B14A15C
二、判断题(对的打“√”,错的打“×”,每小题1分,共10分)
1×2×3√4×5×
6√7×8√9×10×
三、写出下列程序段的输出结果(每小题5分,共20分)
1、
sumis15
评分细则:
直接写15,给4分
2、
6810
评分细则:
写对一个数给1分,三个全对给5分。
华南农业大学2002《程序设计C语言》考卷
17
3、
a_C_program.
4、
1018263641
评分细则:
写对一个数给1分。
四、程序填空题(每空2分,共20分)
1、
①x:
y
②u:
z
2、
③n<=m
④%d*%d=%-3d
评分细则:
以下形式也给全对:
%d*%d=%nd(n为整数)
%d*%d=%d
⑤printf(“\n”)
3、
⑥&a[i]
⑦(a[i]>=60)评分细则:
无括号也给全对
⑧sum=sum+a[i]
4、
⑨b[i]=a[i]+a[i-1]
⑩i%3
五、编程题(20分)
华南农业大学2002《程序设计C语言》考卷
18
1、10分
main()
{
intsumall(inta);
intn,sum;
printf("Pleaseinputn:
");
scanf("%d",&n);