当前位置:
文档之家› 2018秋_高级程序设计语言_A卷
2018秋_高级程序设计语言_A卷
2.
void func(int n) {
int i; for(i=1; i<=n; i=i+2)
if(n%i == 0) printf("%d ", i);
printf("\n");
第 3页,共 10页
} int main() {
int n; scanf("%d", &n); func(n); return 0; } 输入:30<回车> 运行结果为________________________________
A) *a[4]
B) &a[4]
C) a[4]
D) *(a+4)
7.假定a是一个二维数组,则与a[i][j]等价的表达式为( ) A) *(a+i+j) B) *(*(a+i)+j) C) *(a+i)+j D) *a+i+j
8. 关于函数的下列说法正确的是( )
A) 函数内部可以改变实参的值 B) 函数可以有多个返回值 C) 函数调用时只能将实参的值赋给形参 D) 函数可以返回其内部变量的地址
return c;
}
int main()
{
int n=5;
printf("age:%d\n",age(n));
reபைடு நூலகம்urn 0;
}
3.下面程序实现把输入的字符串逆序存放的功能,填空完成程序。
void main()
{
char str[100], t;
int i, j, len;
scanf("%s", str);
11.下面程序的输出结果是( )
int x=1,y=8,z=2;
while(++x!=(y-=1)){
z+=2;
if(y<x) break;
}
printf("x=%d,y=%d,z=%d\n",x,y,z);
A) x=4,y=4,z=8
B) x=5,y=4,z=10
C) x=5,y=4,z=6
D) x=5,y=4,z=12
A) (a>=-22)&&(a<-10)&&(a>=20)&&(a<=44) B) !((a>-22)||(a<=-10)||(a>=20)||(a<44)) C) !((a>-22)&&(a<=-10)||(a>=20)&&(a<44)) D) (a>=-22)||(a<=-10)&&(a>20)||(a<=44)
得分
一、单选题(每小题 2 分,共 30 分)
提示:每题有一项最佳选项,请将该选项字母填在括号内。如果你对
题意有不同的理解,也可以将你的观点或你认为正确的答案写在括号或题后的空隙里。
1.下列不是C语言的关键字的是( ) A) sizeof B) free C) signed
D) auto
2.在C语言中,要求运算数必须是整型的运算符是( )
len=strlen(str);
for(i=0,j=len-1;
;
)
{
t=str[i];
str[i]=str[j];
str[j]=t;
}
printf("%s\n", str);
}
得分
四、编程题(共 40 分)
1.(8 分)编写递归函数计算下面的函数(函数参数 n 和 k 为整数):
for(_______________;i>=1;i--)
B) (exp==0) C) (exp==1) D) (exp!=1)
5. 求如下程序中,循环体语句被执行的次数( )
int i=0; int x,y; for(x=0,y=0;y!=250||x<4;x++) y+=50;
A) 7
B) 6
C) 5
D) 4
6.对于int a[10];取数组a的第5个元素的地址的正确写法是( )
int c; if(n==1) c=10;
密
专业 :
线
线
订
姓名:
封
装
密
线
学号:
线
订
封
装
密
第 5页,共 10页
第 6页,共 10页
封
装
密
线
线
订
2.(10 分)编写程序,判断用户输入的一串字符是否为“回文”,所谓“回文”是指顺读和
倒读都一样的字符串,例如:“level”、”abcddcba”。
3.(10 分)在一个旧式的火车站旁边有一座桥,其桥面可以绕河中心的桥墩水平旋转。一个
封
装
密
线
线
订
学院:
封
装
密
年级:
线
线
订
封
装
青岛大学课程考试试卷
2018 ~ 2019 学年秋季学期 计算机科学技术学院 2018 级 考试时间:120 分钟
课程名称 高级程序设计语言 A 卷□√ B 卷□
题号 一
二
三
四 成绩 复核
得分
阅卷
注意事项:★答卷前,考生务必把答题纸上密封线内各项内容填写清楚并且填写在密封线与 装订线之间(学号应与教务在线中学号相同),否则可能得不到成绩。答案必须写在边框内。 ★试卷中所有的程序,默认包含头文件 stdio.h stdlib.h string.h math.h,省略未印出。
9.struct Node{
int data;
struct Node *next;
} a, b;
则下列赋值语句正确的为( )
A) a.next=b
B) a->next=b
C) a->next=&b
D) a.next=&b
10.能正确表示”a的值在(-22,-10]和[20,44)范围内为假,否则为真”的表达式是( )
4.
int main() {
char a[4][10] = {"1234", "abcd", "xyz", "ijkm"}; int i = 3; char (*p)[10] = a; for (p = a; p < a + 4; p++, i--)
printf("%c", *(*p + i)); return 0; } 运行结果为______________________________________
3.
int func(int n) {
if(n==1) return 1; else return func(n-1)+3; } void main() { int i,j=0; for(i=1;i<4;i++)
j = j + func(i); printf("%d\n", j); } 运行结果为_________________________________
A) !
B) /
C) %
D) --
3.若有语句int a=3,b=2,c=1;则以下值为0的表达式是( )
A) 'a'&&'b'&&'c' B) a>b>c
C) a<b<c
D) a=b+c
4.给定表达式(exp)?a++:b++,则以下表达式中完全等价于表达式(exp)的是( )
A) (exp!=0)
5.
struct st {
第 4页,共 10页
封
装
密
线
线
订
学院:
封
装
密
年级:
线
线
订
封
装
int a; int b; union {
int e; int f; }c; }; int main( ) { struct st y; y.a=10; y.c.e=20; y.c.f=y.a; y.b=y.c.e; printf("%d,%d\n",y.c.e,y.c.f); return 0; } 运行结果为___________________________________
得分
三、程序填空(每空 3 分,共 15 分)
1. 以下程序实现求两个正整数 x 和 y 的最大公约数,请补充完整。
int main() {
int x,y,t,i; scanf("%d%d",&x,&y); if(x>y) {t=x; x=y; y=t;}
else c=________________________________;
printf("%d",strlen(str));
A) 15
B) 4
C) 10
D) 字符串中有非法字符
密
专业 :
线
线
订
姓名:
封
装
密
线
学号:
线
订
封
装
密
第 1页,共 10页
第 2页,共 10页
装
订
线
装
订
线
装
订
线
装
订
线
装
学号:
姓名: