《C程序设计》期末复习练习题及参考答案(3)
一、单项选择题
1.若有定义int (*p)[4],则标识符p是一个 。
A)指向整型变量的指针变量
B)指向函数的指针变量
√C)指向有四个整型元素的一维数组的指针变量
D)指针数组名,有四个元素,每个元素均为一个指向整型变量的指针
2.下列对字符串的定义中,错误的是: 。
√A) char str[7] = "FORTRAN";
B) char str[] = "FORTRAN";
C) char *str = "FORTRAN";
D) char str[] = {'F','O','R','T','R','A','N',0};
3.针对下面程序段,下面哪些说法是正确的?
#include <stdio.h>
void Swap(int *x, int *y);
main()
{ int a, b;
a = 5;
b = 9;
Swap(&a, &b);
printf("a=%d,b=%d",a,b);
}
void Swap(int *x, int *y)
{ int *pTemp;
*pTemp = *x;
整型常量合法要求 *x = *y;
*y = *pTemp;
}
A) 程序运行结果为乱码;
B) 程序运行后将导致程序崩溃;
C) 程序编译时出错导致程序无法运行;
√ D) 程序执行了危险的操作;
4.已知学生记录描述为:
struct student
{ int no;
char name[20];
char sex;
struct
{ int year;
char month[15];
int day;
}birth;
};
struct student s;
设变量s中的生日是1984年11月11日,下列对生日的正确赋值方式是_____
A) ar = 1984; h = "11"; s.birth.day = 11;
B) ar = 1984; h = 11; s.birth.day = 11;
√ C) ar = 1984; strcpy(h, "11"); s.birth.day = 11;
D) ar = 1984; strcpy(h, 11); s.birth.day = 11;
5. 要使下面程序的输出1, 2, 34,则从键盘输入的数据格式应为 。
#include <stdio.h>
main()
{ char a,b;
int c;
scanf("%c%c%d",&a,&b,&c);
printf("%c,%c,%d\n",a,b,c);
}
A)1 2 34 B)1, 2, 34 C)’1’,’2’,34 √ D)12 34
6. 以下选项中为合法整型常量的是( )。
A) -080 √B) -80 C) -8e1.0 D) -80.0e
7. 若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为( )。
A) 4 B) 16 √C) 32 D) 52
8. 下列程序执行后的输出结果是( )。
#include <stdio.h>
void func(int *a, int b[])
{ b[0]=*a+6; }
main()
{ int a,b[5];
a=0; b[0]=3;
func(&a,b); printf("%d\n",b[0]);
}
√A)6 B)7 C)8 D)9
9. 设有定义 char grade = 'A'; 则以下给出的程序运行结果或说法正确的是( )。
switch(grade)
{ case 'A':
case 'B':
case 'C': printf(">= 60 pass!\n");
case 'D': printf("< 60\n");
default : printf("error!\n");
}
A) >= 60 pass! B) < 60 C) error! √D) 以上结果都不正确
10. 以下程序执行后的输出结果是( )。
#include <stdio.h>
int main()
{ int i = 1, j = 1, k = 2;
if((j++ || k++ ) && i++ )
printf("%d,%d,%d\n", i, j, k);
return 0;
}
A) 1,1,2 B) 2,2,1 √C) 2,2,2 D) 2,2,3
11. 执行完循环语句 for(i = 1; i < 10; i++); 后,以下关于变量i的值及循环体的执行次数的说法正确的是( )。
A) i的值是9,循环体执行9次 B) i的值是9,循环体执行10次
√C) i的值是10,循环体执行9次 D) i的值是10,循环体执行10次
12. 以下程序的运行结果是( )。
#include <stdio.h>
int main()
{ int m, n;
for(m = 0, n = 10; m < n; m+=3, n--);
printf("%d,%d\n",m,n);
return 0;
}
A) 6,7 B) 7,6 √C) 9,7 D) 7,9
13. 以下程序的运行结果是( )。
#include <stdio.h>
int main()
{ int i;
int a[3][3]={1,2,3,4,5,6,7,8,9};
for(i = 0; i < 3; i++)
printf("%d ",a[2-i][i]);
return 0;
}
A) 1 5 9 √B) 7 5 3 C) 3 5 7 D) 5 9 1
14. 下列可用于C语言用户标识符的一组是( )。
A)void, define, WORD √B)a3_3,_123,Car
C)For, -abc, IF Case D)2a, DO, sizeof
15. 若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为( )。.
A) a<>0 B) !a C) a=0 √D) a!=0
16. 以下程序的输出结果是( )。
#include<stdio.h>
void main()
{ int x=10,y=10;
printf("%d %d\n", x--, --y);
}
A) 9 9 √B) 10 9 C) 9 10 D) 10 10
17. 若有定义:char *name[] = {"Follow me","BASIC","Great Wall","FORTRAN"};,则name[2]的值是( )。
A) 字符'G' B) 字符串"Great Wall"
√C) 字符串"Great Wall"的首地址 D) 不确定
18. 有以下程序,程序执行后的输出结果是( )。
#include <stdio.h>
void fun(char *p)
{ char *q = p;
while( *q != '\0')
{ (*q) ++;
q++;
}
}
int main()
{ char a[] = {"Program"}, *p;
p = &a[3];
fun(p);
printf("%s\n",a);
return 0;
}
√A) Prohsbn B) Prphsbn C) Progsbn D) Program
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论