???○????线????○????订????○????装????○????内????○????○????
青海大学考试试卷
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页