东华大学200 ~ 200 学年第 学期期终试题
踏实学习,弘扬正气;诚信做人,诚实考试;作弊可耻,后果自负。 课程名称 程序设计基础(C) 使用专业 班级_____________________姓名________________学号__________
试题得分
一 二 三 四 五 六 七 八 九 十 总分 ㈠ 单项选择题(每题2分,共40分)
1、 正确表示“当x的取值在[1,10]或[200,210]范围内为真,否则为假”的表达式是 ( C ) A. (x>=1)&&(x<=10)&&(x>=200)&&(x<=210) B. (x>=1)||(x<=10)||(x>=200)||(x<=210) C. (x>=1 && x<=10)||(x>=200 && x<=210) D. (210>=x>=200)||(10>=x>=1)
2、以下程序的输出结果是 ( D )
void main() {
int a, b;
for(a=1, b=1; a<=100; a++) {
if(b>=10) break; if (b%3==1) {
b=b+3; continue; } }
printf(\}
A. 101 B. 6 C. 5 D. 4
3、若用数组名作为函数调用时实参,则实际上传递给形参的是 ( A )
A.数组首地址
B. 数组的第一个元素值
C.数组中全部元素的值 D. 数组元素的个数
1
注意:填写内容不要超出以上格式,第二页的边距和第一页一样
出题人(签名):________ __ 室负责人(签名):____ _____
4、要求以下程序的功能是计算:s= 1+1/2+1/3+……+1/100 void main() {
float s = 1.0;
for( int n=1;n<=100;n++) s=s+1/n; printf(\}
程序运行后输出结果错误(输出为2.0),导致错误结果的程序行是 ( C ) A. s=1.0; B. for(int n=1;n<=100;n++) C. s=s+1/n; D. printf(\
5、 若有定义int *p[4],则标识符p是一个 (D )
A. 指向整型变量的指针变量 B. 指向函数的指针变量
C. 指向有四个整型元素的一维数组的指针变量
D. 指针数组名,有四个元素,每个元素均为一个指向整型变量的指针 6、若有说明: int i,*p=&i;
要实现i的内容加10,则下面的语句中错误的是 (D ) A. i=i+10; B. i=*p+10; C. *p=*p+10; D. *p=&i+10;
7、 对下面三条语句(其中s1和s2为内嵌语句),正确的论断是 ( A ) ⑴ if (a) s1;else s2; ⑵ if (a==0) s2;else s1; ⑶ if (a!=0) s1;else s2; A. 三者相互等价 B.(1)和(2)等价,但与(3)不等价 C. 三者互不等价 D.(1)和(3)等价,但与(2)不等价
8、 判断下面函数aaa的功能是 ( A ) int aaa(char *s) {
char *t=s;
while(*t) t++; return t-s;
}
A. 计算字符串s的长度 B. 比较两个字符串s和t的大小 C. 将字符串S复制到字符串t中 D. 以上三种说法均不对
9、若有定义:int a[5]; 则a数组中首元素的地址可表示为 ( C )
A. &a B. a+1 C. a D. &a[1]
2
注意:填写内容不要超出以上格式,第二页的边距和第一页一样
出题人(签名):________ __ 室负责人(签名):____ _____
10、有以下程序
void main( ) {
char *p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”}; printf(“%d\\n”,strlen(p[4]));
}
执行后输出结果是 ( A ) A. 2 B. 3 C. 4 D. 5
11、有以下程序
void sum(int *a) {
a[0]=a[1]; }
void main( ) {
int aa[10]={1,2,3,4,5,6,7,8,9,10}; for(int i=2; i>=0; i--) sum(&aa[i]); printf(“%d\\n”,aa[0]);
}
执行后的输出结果是 ( A ) A. 4 B. 3 C. 2 D. 1
12、以下程序的运行结果是 ( A ) char *p=\;
p=p+2; printf(\;
A. cde B. 字符'c' C. abcde D. 字符'c'的地址
13、已有定义 int k=2; int *ptrl, *ptr2;且 ptrl和 ptr2均已指向变量 k,下面不能正确执行的赋值语句是 ( B ) A. k=*ptr1+*ptr2; B. ptr2=k; C. ptrl=ptr2; D. k=*ptrl*(*ptr2);
int *p, i; double *q, ch; p=&i; q=&ch;
3
14、以下代码段有错误,错误原因是 ( A )
注意:填写内容不要超出以上格式,第二页的边距和第一页一样
出题人(签名):________ __ 室负责人(签名):____ _____
*p=40; *p=q;
A.*p和q的类型不一致,不能执行*p=q;语句 B.*p中存放的是地址值,因此不能执行*p=40;语句 C.q没有指向具体的存储单元.所以q的值没有实际意义
D.q虽指向具体的存储单元,但该单元中没有确定的值,故不能执行*p=q; 语句
15、下列程序段的输出结果是 ( B )
int t=0,a[3] = {10,5,1}; int *p;
相关推荐: