青海大学2013年《程序设计基础(C)》(含答案)

???○????线????○????订????○????装????○????内????○????○????

青海大学考试试卷

C、数组的大小是固定的,所有数组元素的类型必须相同。 D、数组的大小是可变的,可以有不同的类型的数组元素。

2012~2013学年第二学期 9.设有定义语句int a[3][4],则以下对此语句的叙述不正确的是: 【 】 A、定义了一个名为 a 的二维数组 B、a 数组共有3*4个元素

《程序设计基础(C)》课程考试试卷

C、a 数组中行下标为1~3, 列下标为1~4 D、数组中的每个元素必须为整型 10.在执行int a[ ][3]={1,2,3,4,5,6}; 语句后,a[1][1]的值是: 【 】 考试日期: 年 月 日

A、4 B、1 C、 2 D、 5

注:所有答案均写在答题卡上,考试结束后试卷和答题卡一并交回

11.不能把字符串:Hello!赋给数组b的语句是: 【 】 A、char b[10]={?H?,?e?,?l?,?l?,?o?,?!?}; B、char b[10]; b=“Hello!”;

得分 评卷人

一、单项选择题(每小题2分,共40分) C、char b[10]; strcpy(b,“Hello!”);

D、char b[10]=“Hello!”;

12.为了判断两个字符串s1和s2是否相等,应当使用: 【 】

A、if (s1= =s2) B、if (s1=s2)

1.下列变量名中合法的是: 【 】 C、if (strcpy(s1,s2)) D、if (strcmp(s1,s2)= =0)

A、B.C.Tom B、 3a6b C、_6a7b D、$ABC

13.在C语言程序中,以下正确的描述是: 【 】 2.字符型常量在内存中存放的是: 【 】 A、函数的定义可以嵌套,但函数的调用不可以嵌套 A、ASCII代码 B、 BCD代码 C、 内部码 D、十进制码

B、函数的定义不可以嵌套,但函数的调用可以嵌套 3.下列保留字中用于构成循环结构的是: 【 】 C、函数的定义和函数的调用均不可以嵌套 A、default B、 switch C、while D、if

D、函数的定义和函数的调用均可以嵌套

4.x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是: 14.当执行以下程序段时: 【 】

【 】 x=-1;

A、input x、y、z; B、scanf(\do { x=x*x;} while(!x);

C、scanf(\ D、read(\

A、循环体将执行一次 B、循环体将执行两次 5.C语言的switch语句中,case后: 【 】 C、循环体将执行无限次 D、系统将提示有语法错误

A、只能为常量 B、只能为常量或常量表达式 15.以下关于for循环的正确描述是: 【 】 C、可为常量及表达式或有确定值的变量及表达式 D、可为任何量或表达式 A、for循环只能用于循环次数已确定的情况 6.以下正确的描述是: 【 】 B、for循环是先执行循环体语句,后判断表达式 A、continue语句的作用是结束整个循环的执行

C、在for循环中,不能用break语句跳出循环体

B、只能在循环体内和switch语句体内使用break语句 D、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来

C、在循环体内使用break语句和continue语句的作用相同 16.若函数调用时的实参为简单变量,以下关于函数形参和实参的叙述正确的是:

D、从多层循环嵌套中退出时,只能使用goto语句。

【 】

7.在C语言中,if语句后的一对圆括号中,用以决定分支的流程的表达式:【 】 A、函数的实参和其对应的形参共占同一存储单元。 A、只能用逻辑表达式 B、只能用关系表达式 B、形参只是形式上的存在,不占用具体存储单元。 C、只能用逻辑表达式或关系表达式 D、可用任意表达式

C、同名实参和形参占同一存储单元。

8.以下关于C语言中数组的描述正确的是: 【 】 D、函数的形参和实参分别占用不同的存储单元。 A、数组的大小是固定的,但可以有不同的类型的数组元素。 17.有如下程序段: B、数组的大小是可变的,但所有数组元素的类型必须相同。

int x,y,z;

命题教师签名: 教研室主任签名: 院、系(部)领导签名:

第1页,共10页

第2页,共10页

???○????线????○????订????○????装????○????内????○????○????

x=20,y=40,z=60;

10.在内存中存储“A”要占用 【12】 个字节,存储?A?要占用 【13】 字节。 while(x

printf(“%d,%d,%d”,x,y,z);

12.有函数调用fun1(x+y, (y, z), 10, fun(x,y-1)); 函数fun1有【15】 个参数。 则此程序的输出结果是: 【 】 13.定义结构体类型,使用关键字 【16】 ,定义枚举类型,使用关键字 【17】 。 A、40,36,30 B、32,28,7 C、32,28,30 D、32,28,7.5 14.设有定义如下:#define F(N) 2*N,表达式F(2+3)的值是 【18】 。

18.有如下程序段: 15.定义int a[]={1,2,3,4,5,6},*p=a;表达式 (*++p)++ 的值是 【19】 。 static char a[ ]={“abcdef”}; 16.使用FIFE定义一个文件指针(FILE *fp),再执行语句fp=fopen (文件名, 文件char *p=a; 的使用方式),此时,文件指针fp实际上是指向一个 【20】 类型的变量。 *(p+2)+=3;

printf(“%c,%c\\n”,*p,*(p+2));

得分 评卷人 则此程序的输出是: 【 】 A、d,f B、c,e C、a,f D、f,e

19.下列说法中正确的是: 【 】 三、判断题(每小题1分,共8分)

A、在程序中定义一个结构体类型,将为此类型分配存储空间 1.C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运行不起任何B、结构体类型的成员名可与结构体以外的变量名相同 作用,但是可以增加程序的可读性。 【 】 C、结构体类型必须有名称

2.#include和#define是C语句。 【 】 D、结构体的成员不可以是结构体变量

3.在C程序中,无论多少大的整数还是实数,都能准确无误的表示。 【 】 20.使用fopen( )以文本方式打开或建立可读可写文件,要求:若指定的文件不存在,4. 自增运算符(++)或自减运算符(--)只能用于变量,不能用于常量或表达式。【 】 则新建一个,并使文件指针指向其开头,若指定的文件存在,打开它,将文件指5.在定义数组时,有时可以将该数组的维数省略。 【 】 针指向其结尾。正确的“文件使用方式”描述是: 【 】 6.在函数的定义和调用过程中,形式参数和实际参数数目可以不一致。 【 】 A、“r+” B、“w+” C、“a+” D、“a” 7.C语言程序设计中,不同类型的数在计算机内存中所占空间是不同的。 【 】 得分 评卷人 8. 函数调用:strcat(strcpy(str1,str2),str3)的功能是将串str2连接到串str1之后再将串str1二、填空题(每空1分,共20分)

复制到串str3中。 【 】 得分 评卷人 1.若要在程序中使用标准输入输出库函数时,则必须在程序的开始用#include命令中四、程序阅读题(每小题3分,共12分)

使用 【1】 头文件。

2.一个C语言的程序至少应包含一个 【2】 。

3.C语言中用 【3】 表示逻辑值“真”,用 【4】 表示逻辑值“假”。

1 .有如下程序段, 4.若有定义:int x=3,y=2; float a=2.5,b=3.5; 则表达式(x+y)%2+(int)a/(int)b的值为 int k=5,m=1; 【5】 。 switch(k){

case 1:m++; 5.数学表达式

x?yx?y?2x-3y的C语言表达式是 【6】 。 case 5:m*=3;

case 9:m+=4;break; 6.表达式10.5+1/2的计算结果是 【7】 。

case 11:m+=1; 7.若有int m=3,y=1;则计算表达式y+=y-=m*=y后的y值是 【8】 。

default:m+=2;}

8.结构化程序设计的基本结构有三种,分别是顺序结构、 【9】结构和 【10】结构。 printf(“%d\\n”,m); 则输出结果 。

9.静态整型数组不赋初值时,其各元素的值为 【11】 。

命题教师签名: 教研室主任签名: 院、系(部)领导签名:

第3页,共10页

第4页,共10页

???○????线????○????订????○????装????○????内????○????○????2.有如下程序段, int x,y;

scanf (“%d”, &x); while(x){

y=x;

printf (\ x/=10; }

若输入整数12345,则输出结果 。

3.有如下程序段, int i=1,s=2; do{

s+=i++;

if(s%6==0) continue; else ++i; }while(s<12); printf(\

则输出结果 。

4.读下面程序: f(int a[ ], int m, int n) {

int i,s=0;

for(i=m;i

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

printf(“%d\\n”,x); }

则输出结果 。

命题教师签名:

第5页,共10页

得分 评卷人 五、编程题(共20分)

1 .(6分)编写一个程序完成下述计算: 0 (x<0)

y= 3x+4.5 (0<=x<=10)

2.5x-10.5 (x>10)

2.(7分)从键盘输入8个数,输出其中最大者。要求:使用数组进行存储。

3.(7分) 编写求解Cmn!n?m!(n?m)!的程序

(要求将求阶乘的过程编成一个函数fac,以不同的参数k来调用该函数, 从而求解Cmn)。

教研室主任签名: 院、系(部)领导签名:

第6页,共10页

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4