《c程序设计》试题(a卷)
适用于2011级工科专业本科学生,开卷考试,时间180分钟)
注意:答案请在答题。doc文件中填写,提交时将其重命名为学号+姓名。doc,通过局域网络提交答案。
一、单项选择题(共10题,每题2分,共20分)
1.以下叙述正确的是().
a)在c 程序中,main 函数必须位于程序的最前面。
b)c 程序的每行中只能写一条语句。
c)c 语言本身没有输入输出语句。
d)在对一个c程序进行编译的过程中,可发现注释中的拼写错误。
2. c 语言的if 语句嵌套时,if 与else 的配对关系是()。
a)每个else 总是与它上面的最近的if 配对。
b)每个else 总是与最外层的if 配对。
c)每个else 与if 的配对是任意的。
d)每个else 总是与它上面的if 配对。
3. 能正确表示逻辑关系:"a≥10或a≤0"的c语言表达式是().
a)a>=10 or a<=0 b)a>=0|a<=10
c)a>=10&&a<=0d)a>=10_a<=0
4. c 语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是()。
a)地址传递。
b)单向值传递。
c)由实参传给形参,再由形参传回给实参。
d)由用户指定的传递方式。
5. 下面有关 for 循环的正确描述是 ()
a)for 循环只能用于循环次数已经确定的情况。
b)for 循环是先执行循环体语句,后判断表达式。
c)在 for 循环中,不能用 break 语句跳出循环体。
d)for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来。
6. 假定所有变量均已正确定义,下列程序段运行后x 的值是()。
k1=1;k2=2;
k3=3;x=15;
if(!k1) x--;
else if(k2) x=4;
else x=3;
a)14 b)4 c)15 d)3
7. c 语言中,char 类型数据占()。
a)1个字节 b)2个字节 c)4个字节 d)8个字节。
8. 在c 语言程序中()。
a)函数的定义可以嵌套,但函数的调用不可以嵌套。
b)函数的定义不可以嵌套,但函数的调用可以嵌套。
c)函数的定义和函数调用均可以嵌套。
d)函数的定义和函数调用不可以嵌套。
9. 具有相同类型的指针变量 p 与数组 a,不能进行的操作是().
a)p=a; b)*p=a[0]; c)p=&a[0]; d)p=&a;
10. 下列程序的输出结果为().
main()
int m=7,n=4;
float a=38.4,b=6.4,x;
x=m/2+n*a/b+1/2;
printf("%f",x);
a)27.000000 b)27.500000 c)28.000000 d)28.500000
二、判断对错(共10题,每题1分,共10分)
1. 以下**的运行结果为:2023年1月2日进行期末考试。
#include <>
int main()
struct date
int month;
int day;
int year;
qmks=;
printf(“%d年%月%日进行期末考试”,2. 程序进行编译时,不为形式参数分配存储空间。
3. 用 printf 函数输出一个字符串时,格式字符为%s,输出项可以是此字符串或存放此字符串的数组的数组名。
3. char a=char b=数组a和数组 b 占用的内存空。
间大小不一样。
4. 若有 int i=10,j=2; 则执行完 i*=j+8;后 i 的值为28.
5. c 语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。
6. c 语言规定:在一个源程序中,main 函数的位置必须在最开始。
7. c 程序中的一个变量可以被定义为两个或多个不同的类型。
8. 有数组定义int a[2][2]=,则a[0][1] 的值为0.
9. 函数调用可以出现在执行语句中,但不能出现在表达式中。
10. strcat(s1,s2)函数是将字符串 s1复制到字符串 s2中。
三、程序填空题(共6空,每空4分,共24分)
1、列出所有的个位数为6,且能被3整除的2位数。
main()
int i;
for(【空1】;i<=99;i++)
if(【空2】 &i%3==0)
printf("%3d",i);
2、以下程序的功能是用冒泡法对数组a 进行由小到大的排序。
void fun(int a,int n)
int i,j,t;
for (j=0; 【空1】;j++)
for (i=0; 【空2】;i++)
if(【空3】)
t=a[i];a[i]=a[i+1];a[i+1]=t;}
main()
int i,a[10]=;
空4】;for(i=0;i<10;i++)
printf("%3d",a[i]);
四、程序改错题(共10处错误,每处2分,,共20分)
1、fun 函数的功能是:找出大于 m 的最小素数,并将其作为函数值返回。请改正程序中的错误,使它能得出正确的结果。
注意:不可以增加或删除程序行,也不可以更改程序的结构。
int fun( int m)
int i,k;
for(i=m+1;;i++)
foundfor(k=1;kfound
if(i%k!=0) break;
foundif(kfound
return k;
main()
int n;
scanf("%d",&n);
printf("%d",fun(n));
2、给定程序 中函数 fun 的功能是:求两数平方根之和,作为函数值返回。例如:输入12和20,输出结果是:y = 7.936238。
注意:不可以增加或删除程序行,也不可以更改程序的结构。
#include <>
#include <>
founddouble fun (double *a, *b)
double c;
foundc = sqr(a)+sqr(b) ;
foundreturn a;
main (
double a, b, y;
printf ( enter a & b : scanf ("lf%lf",a, &b );
y = fun (&a, &b); printf ("y = f ", y );
getch();
3、读取7个数(1-50)的整数值,每读取一个值,程序打印出该值个数的*。
注意:不可以增加或删除程序行,也不可以更改程序的结构。
#include ""
main()
int i,a,n=1;
foundwhile(n<7)
doscanf("%d",&a);
foundwhile(a<1&&a>50);
foundfor(i=0;i<=a;i++)
printf("*
printf("");
n++;getch();
五、编写程序(共26分)
1、(共10分)编写函数 fun 将一个数组中的值按逆序存放,并在 main()函数中输出。例如,原来存顺序为8,6,5,4,1。要求改为:1,4,5,6,8。
注意:部分源程序给出如下。请勿改动主函数main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。
#include ""
#define n 5
main()
int a[n]=,i;
for(i=0;iprintf("%4d",a[i]);
printf("");
fun(a,n);
for(i=0;iprintf("%4d",a[i]);
getch();
int fun(int arr,int n)
program
end2、(共16分)编写函数jsvalue,它的功能是:求fibonacci数列中大于t的最小的一个数,结果由函数返回。其中fibonacci数列f(n)的定义为:
f(0)=0,f(1)=1
f(n)=f(n-1)+f(n-2)
最后调用函数writedat()读取50个数据t,分别得出结果且把结果输出到文件中。例如:当t=1000时,函数值为:
1597。部分源程序存在文件中。请勿改动主函数main()和写函数writedat()的内容。
#include <>
void writedat();
int jsvalue(int t)
program
endmain()
int n;
n = 1000;
printf("n=%d,f=%d",n,jsvalue(n));
writedat();
void writedat()
file *in, *out;
int i, n, s;
in = fopen(""r");
C程序设计试卷1C程序设计
c 程序设计试卷。一 选择题。每小题3分,共15分 1 派生类能够直接访问的基类的成员是 a 公有成员 b 保护成员 c 私有成员 d 静态。2 下面是几条定义类的语句,不能被继承的类是 a abstract class figure b class figure c public class fi...
C 程序设计试卷C
面向对象的程序设计c 试卷c 一 填空 每空2分,共20分 1 定义于函数外的变量称为。2 假定class1为一个类,则执行 class1 a 5 b 2 p 3 语句时,自动调用该类构造函数的次数为。3 利用操作符 语句序列p p 1 f p 5 的功能可以由一个语句完成。4 不借助于其他变量交换...
C 程序设计试卷 A
c 程序设计课程期末考试试题 a卷 一判断题 正确打 a 错误打 b 每小题1分,共计20分 1在面向对象的编程中,和数据合并为一个不可分割的对象。2对象是有确定简介且与要处理的问题相关的概念或事物。3每个对象都称为它的类的一个示例。类中的对象具有相同的属性和共同的行为。4多态性是指相同的函数可以在...