南师大物科院2000级C语言程序设计(A卷). 下载本文

内容发布更新时间 : 2024/6/27 0:25:57星期一 下面是文章的全部内容请认真阅读。

南师物科院99级C程序设计(A卷)

2001/12/24

一、选择题(20分)

1. printf(\输出是: A.1 2 4 8 B.2 2 2 4 C.1 2 4 4 D.1 2 2 8

2. 设有变量说明:char *s,s1[20]; 执行语句:*s1=‘F’;s=s1; 正确的叙述是 A.二个语句都不正确 B.s所指句的字符串和s1的值都是”Ftudent”

C.第一个语句正确,第二个语句不正确 D.第一个语句不正确,第二个语句正确 3. 关于预处理命令, 错误的说法是

A. 均以”# ”开头 B. 必在程序开头 C. 后面不加分号 D. 在真正编译前处理 4. char ch=’a’; ch=(ch>=’a’&& ch<=’z’)?ch:(ch-32); 则表达式是 A.A B.a C.Z D.z

5. char *sp=”\\x69\\082\\n”; printf(“%d”,strlen(sp)); 则输出结果是 A. 3 B.5 C. 1 D.字符串中有非法字符

6. 若有以下定义和语句,且0<=I<10,则对数组元素的错误引用是 int a[]={1,2,3,4,5,6,7,8,9,0},*p=a, I;

A. *(a+I) B. a[p-a] C. p+I D. *(&a[I]) 7.int y=-5;执行语句:while (++y);printf(“y=%d\\n”,y);后程序输出为 A. y=0 B. 无限循环 C. y=1 D.y=-1 8. 下列运算符优先级最高的是 A. , B.= C.|| D.!=

9.语句:y = + + * PX等价于

A. y= * (+ +px) ; B. * px= * px+1;y= * px; C. y= * px ;+ +px; D.+ +px ; y= * px; 10. * &a的值的类型为

A.地址型 B.结构型 C.指针型 D.变量a的类型

二、填空题(10分)

1.有如下说明:static double a[4][3];

设a的首地址为d,则 &a[2][1]的值为

2. int a,b;对于下面for循环中的scanf语句最少可执行 次,最多可执行 次。 for (a=0,b=25;b!=30&&a<4;b++) scanf(“%d”,&a);

3. int a,b;若用scanf语句输入二个数给a,b, 键盘输入形式为234;123,则语句应写为 4. main(int argc ,char * *argv) {......}

设原程序的文件名为TEST.C,现有命令行为:TEST FILE1 FILE2 FOUT ,则argc值为 ,argv[2]的值为

5.int x,y;与命题:x和y中有且仅有一个为真对应的表示式是

三、阅读程序(20 分)

1.在以下程序中,第一个输出值________,第二个输出值________ . #define M 3 #define N M+1 #define NN N/N*2 main()

{ printf(\

1

2.程序输出的最后两行是_____________________ main()

{int i=-5;

while(i++){ switch(i+5){

case 1: switch(-i-3){

case 1:printf("%d\\n",i); break; case 2:printf("%d\\n",i); } case 2: printf("%d\\n",i);break;

case 3: printf("%d\\n",i); } } }

3. main()

{ int x=0; sub(&x,8,1); printf(“x=%d”,x);} sub (int *x, int n,int k)

{ if(k<=n) sub(x,n,3*k); *x-=k, *x-=n;} 输出结果为__

4.int a[]={0,1,2},*p={a,a+1,a+2},**pp=p;

main()

{ pp=pp+2; printf(\ }

输出是

5. main()

{ char [6], *p=s; int n=0;

gets(p);while (*p!=’\\0’) n=n*8+*p-‘0’;printf(“%d”,n); } 若键盘输入132,输出结果为 ;函数的功能是 ;

四、完善程序(10 分)

1. 求串长度

int len(char *s) { char *p=s;

while (*p!= ) p++; return( ); }

2.下面函数的功能是交换两个整数,完善该函数。 main() { int n, m;

scanf(“%d %d”,&n,&m);

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

五.编写程序(40分)

1.求出n到m (m>n)内的素数,并按每行五个数据的格式输出。

2.某班50人的英语成绩、计算机基础、大学语文成绩已用百分制给出,(1) 输出英语成绩的最高分

(2) 按每个人的三门课的平均成绩排序。 3. 将一个链表逆序。

2