|
|
四川农业大学网络教育专科考试
C语言 试卷(课程代码 352062)本试题一共四道大题,共6页,满分100分。考试时间90分钟。
注意:1、答案必须填写在答题纸上,题号不清或无题号的以零分计;
2、答题前,请在答题纸上准确、清楚地填写各项目;
3、学号、考点名称、考室号、姓名、身份证号、课程代码、课程名称、培养层次等,不写、乱写及模糊不清者,答题纸作废;
4、开卷考试,若有雷同以零分计。一、选择题(每题2分,共40分)
1、在C语言中,合法的长整型常数是:
A)0L B)4962710 C)0.054838743 D)2.1869e102、设有以下宏定义:
#define N 3
#define Y(n) ( (N+1)*n)
则执行语句:z=2 * (N+Y(5+1));后,z的值为:
A) 出错 B) 42 C) 48 D)543、 请选出合法的C语言赋值语句:
A) a=b=58 B) i++;
C) a=58,b=58 D) k=int(a+b)4、C语言的编译系统对宏命令的处理是:
A) 在程序运行时进行的
B) 在程序连接时进行的
C) 和C程序中的其它语句同时进行编译的
D) 在对源程序中其它成份正式编译之前进行的5、以下说法中正确的是:
A)#define和printf都是C语句 B)#define是C语句,而printf不是
C)printf是C语句,但#define不是 D)#define和printf都不是C语句
6、若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是:
A)1 B)2
C)2.0 D)2.5
7、能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假“的表达式是_______。
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) (x>=1) || (x<=10)&&(x>=200) || (x<=210)
8、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是:
A)c=b=a; B)(a=c)‖(b=c);
C)(a=c)&&(b=c); D)a=c=b;
9、有以下程序
#include
main()
{ int a,b,c=246;
a=c/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b);
}
输出结果是:
A) 2,1 B) 3,2 C) 4,3 D) 2,-1
10、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为:
A)a<>0 B)!a
C)a=0 D)a11、有以下函数char *fun(char *p){ return p; }该函数的返回值是:
A) 无确切的值 B) 形参p中存放的地址值C) 一个临时存储单元的地址 D) 形参p自身的地址值
12、假定所有变量均已正确说明,下列程序段运行后x的值是:
a=b=c=0;x=35;
if(!a)x--;
else if(b);
if(c)x=3;
else x=4;
A)34 B)4 C)35 D)3
13、以下有关宏替换的叙述不正确的是:
A) 宏替换不占用运行时间 B)宏名无类型
C)宏替换只是字符替换 D)宏名必须用大写字母表示
14、执行以下程序段时:
A) 循环体将执行一次 B) 循环体将执行两次
C) 循环体将执行无限次 D) 系统将提示有语法错误
x=-1;
do {x=x*x; } while(! x);
15、下列运算符中优先级最高的是______。
A) < B) + C) && D) !=
16、不能把字符串:Hello!赋给数组b的语句是:
A)char b[10]={'H','e','l','l','o','!'};
B)char b[10];b="Hello!";
C)char b[10];strcpy(b,"Hello!");
D)char b[10]="Hello!";
17、 请选出以下语句的输出结果:
printf("%d\n",strlen("\t\"\065\xff\n"));
A) 5 B) 14 C) 8 D) 输出项不合法,无正常输出
18、以下程序的输出结果是:
A)AfghdEFG B)Abfhd C)Afghd D)Afgd
#include
main( )
{ char *p1,*p2,str[50]="ABCDEFG";
p1="abcd"; p2="efgh";
strcpy(str+1,p2+1); strcpy(str+3,p1+3);
printf("%s",str);
}
19、设有以下定义:
int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
int (*prt)[3]=a,*p=a[0]
则下列能够正确表示数组元素a[1][2]的表达式是:
A)*((*prt+1)[2]) B)*(*(p+5))
C)(*prt+1)+2 D)*(*(a+1)+2)
20、有以下函数:
char *fun(char *p)
{ return p; }
该函数的返回值是: __ 。
A) 无确切的值 B) 形参p中存放的地址值
B) 一个临时存储单元的地址 D) 形参p自身的地址值二、写程序结果(每题5分,共20分)
(1)、以下程序的输出结果是:
main( )
{ int i;
for(i=1;i<6;i++)
{ if(i%2) {printf("#");continue;}
printf("*");
}
printf("\n");
}
输出结果:
(2)、下列程序执行后输出的结果是:
int d=1;
fun (int q)
{ int d=5;
d + =q+ +;
printf("%d".d);
}
main( )
{ int a=3;
fun(a);
d + = a + +;
printf("%d\n",d);
}
输出结果:
(3)、下列程序执行后输出的结果是:
#inclued “stdio.h”
main()
{ int x=0,y=2,z=3;
switch(x)
{ case 0: switch(y==2)
{ case 1: printf("*");break;
case 2: printf("%");break;
}
case 1: switch(z)
{ case 1: printf("$");
case 2: printf("*");break;
default:printf("#");
}
}
}
输出结果:
(4)、下列程序执行后输出的结果是:
#include<stdio.h>
#define MIN(x,y) (x)<(y)? (x) y)
main()
{ int i,j,k;
i=10; j=15;
k=10*MIN(i,j);
printf("%d\n",k);
}
输出结果:三、简答题(每题6分,共30分)
(1)有如下定义: int a[10],*p=a; 和 float a[10],*p=a; 若执行 p++; 后,p增值是否相同?并说明其原因?
(2)简述C语言中三种循环结构的特点,并各举一例?
(3)简述break;和 continue;语句的不同?
(4)分析什么是形式参数,实际参数?比较实际参数是数组名和数组元素时有何区别?
(5)简述C语言中有哪几种语句,并举例?四、编程题(每题10分,共10分)
1、打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=13+53+33。 转载注明 www.ap5u.com q76 129 60 21
|
|