C(Ⅱ)期末试卷(含答案)
- 格式:doc
- 大小:54.00 KB
- 文档页数:12
江 苏 大 学 试 题课程名称 计算机基础及C语言(Ⅱ) 开课学院 计算机学院
使用班级 考试日期 .
注意事项:
1. 闭卷考试。考试时间为120分钟。
2.答案均请用铅笔涂在答题卡上。将答题卡上的试卷类型涂A(补考则涂B)。
3.请将答题卡、试卷都写上班级、学号、姓名、任课教师。考试结束分别交予监考老师。
一、 选择题(30分,每小题1分,请涂写在答题卡上)
1. 以下常量中正确的是D.
A.'abc' B. ’\x123’ C.3。145E—1.2 D. ”a”
2. 以下选项中,不能用作变量名的是D。
A. _1234_ B._1_2 C.int_2_D.2_int_
3. 设有“int a;",以下不能正确表达10
A。 10
C。a>10&&a〈15 D。!(a〈=10)&&!(a〉=15)
4. 已知数据类型定义和变量声明如下:
struct sk
{int a; float b;}data[2], * p;
若有p=data,则以下对data[0]中成员a的引用中错误的是A.
A. data[0]-〉a B. data—〉a C. p->a D. (* p)。a
5. 下列程序的程序输出结果为A。
#define X(a) a*a
main()
{ printf(“%d\n”,X(4+5));}
A.29 B。18 C。20 D。25
6. 若有定义“enum seq{mouse, cat, dog, rabbit=0, sheep, cow=6, tiger};” 则执行语句“printf(“%d”,cat+sheep+cow);"后输出的结果是_____C______。
A。 6 B。7 C.8 D。 9
7. 以下能将字符串“good!”正确地存放在字符数组s中,或使指针s能指向这个字符串的是______D______。
A。 char s[4]={‘g’, ‘o’, ‘o’, ‘d’, ‘!’}; B. char s[5];s=“good!”;
C.int s[5]=“good!”; D.char *s;s=“good!”;
共 9页
第 1 页 江 苏 大 学 试 题第2页
8. 设有说明:
union data
{ int i ;float f;
struct{ int x;char y;}s;
double d; }a;
则变量a 在内存中所占字节数为_A__ 。
A。8B。17 C。9 D.15
9. 设已有非空文本数据文件filel.dat,要求能读出文件中原有的全部数据,并在文件原有数据之后添加新数据,则用FILE *fp=fopen(”file1。dat”,D)打开该文件。
A。 ”w"B。 ” w+”C。 "r+" D. "a+”
10. 以下关于if语句的错误描述是B.
A。 条件表达式可以是任意表达式
B. 条件表达式只能是关系表达式或逻辑表达式
C. 条件表达式的括号不可以省略
D. 与else配对的if语句是其之前最近的未配对的if语句
11. 在以下不致造成死循环的语句是:A.
A。 for(y=0,x=1;x>++y;x=i ++)i =x;
B。 for(; ;x+=i );
C. while(x=8)x--;
D. for(i =10,sum=0;sum<=i ;)sum= --i ;
12. 设有定义:“float y=3.45678;int x;”,则以下表达式中能实现将y中数值保留小数点后2
位,第3位四舍五入的表达式是:B。
A。y=(y*100+0。5)/100。0 B. x=y*100+0.5,y=x/100.0
C。 y=y*100+0。5/100.0 D。y=(y/100+0.5)*100.0
13. 以下程序段输出结果是:C。
int a=10,b=11,c=12,s;
s=a++〈=10&&b-—〈=2&&c++;
printf(“%d,%d,%d,%d”,s,a,b,c);
A. 0,11,10,13 B. 1,11,10,13 C。 0,11,10,12 D。1,11,10,12
14. 设有“char s[ ]=“Program”,*p=s;”,则以下叙述中正确的是:C.
A. 数组s的内容与指针变量p中内容相同
B. 数组s的长度与strlen(p)的值相等
C. p[5]的值等于s[5]的值
D。 sizeof(s)等于sizeof(*p)
15. 下列程序段执行后变量j的值是:B.
int j;char *s=”x\045\"”;for(j=0;*s++;j++); 江 苏 大 学 试 题 第3页
A。 7 B. 3 C. 4 D. 5
16. 若有定义语句“static char str[4][20]={ "thank", "you",”very",”much! ”};”则str数组中存储’\0’的数组元素有:D个。
A. 0 B。 17 C. 21 D。 63
17. 下列正确的声明说明语句是D。
A. float m=15,n=4,q=m%n;
B. int n=10, y[n];
C. char p[2][]={ "DOS","WINDOWS”};
D. char *p[]={ "DOS",”WINDOWS”,"UNIX"};
18. 设有函数f的定义如下:
void f(int x,int *y)
{ *y=x*x*x;}
main( )
{ int j,c[4]={1,2,3,4},s[4]={0};
for(j=0;j〈4;j++)
{ /* 调用f函数*/
printf(“%d”,s[j]); }
}
若在main函数中欲调用函数f,则正确的调用语句是______C______。
A. f(c,s);B. f(c[i ],s[i]);
C。f(*(c+i),&s[i]); D. f(c+i ,s+i );
19. 执行以下程序段后,x,w的值为_____C_______。
int x=0,y=1,z=2,w;
if(x++)w=x;
else if(x++&&y〉=1)w=y;
else if(x++&&z〉1)w=z;
A。 0,1 B. 1,1 C。 2,1 D。3,2
20. 已知有声明语句“int a[5]={1,2,3,4,5},*p,i;”,以下语句中不能正确输出a数组全部元素值的是_____C______。
A. for(p=a,i=0;i<5;i++) printf(”%d”,*(p+i));
B. for(p=a;p
C. for(p=a,i=0;p〈a+5;p++,i++) printf("%d”,p[i]);
D. for(p=a;p
江 苏 大 学 试 题 第4页
21. 该程序运行后,输出x的值是__________,y的值是_____D_____.
int x=1;
main()
{int y,k; y=f(3);printf(”%d\n%d”,x,y);}
int f(int x)
{if(x==3) {int x=2;return x; }
else return x;
}
A。 0,1 B. 1,1 C. 2,1 D。1,2
22. 当程序读写数据文件时,需要有声明语句“FILE *fp;”,在该声明语句之前必须包含头文件______B______.
A。 string.hB. stdio。hC. math。hD。ctype。h
23. 在文件中,以符号常量EOF作为文本文件的结束标记,EOF代表的值是_____B____。
A。 —2B. -1C。 0D.1
24. 若有声明“double a[2][3]={1,2,3,4,5,6};”,则下列表达式中不能正确引用a[1][1]值的是__C___。
A. *(a[0]+4)B. *(a[1]+1)C. *(*(a+3)+1)D。 *(*a+4)
25. 有以下程序段
typedef struct NODE
{ int num; struct NODE *next;} OLD;
则以下叙述中正确的是_____D____.
A。 以上的说明形式非法 B。 NODE是一个结构体类型
C。 OLD是一个结构体类型 D。 OLD是一个结构体变量
26. 当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是_____D_____。
A。k%2 B。k%2==1 C. (k%2)!=0 D。!k%2==1
27. 若有定义:int x=0, *p=&x;,则语句printf("%d\n”,*p);的输出结果是
A.随机值 B。0C.x的地址 D.p的地址
28. 以下能正确定义且赋初值的语句是___B______。
A。int n1=n2=10; B.char c=32; C.float f=f+1。1; D。double x=12。3E2。5;
29. 设有定义:int k=1,m=2; float f=7;,则以下选项中错误的表达式是 C
A.k=k〉=k B.—k++ C.k%int(f) D。k>=f>=m
30. 以下程序运行后的输出结果是:___B_____
A。2 2 B.7 2 C. 7 5 D。6 2
main()
{char a[7]= ”a0\0a0\0”; int i, j;
i=sizeof(a); j=strlen(a);
printf("%d %d”,i,j);}