程序设计试题集
一、 单项选择题
1.1.定义一个具有10个元素的整型数组,应当使用代码是
A.int a[10]; B.int a[2, 5]; C.int a[]; D.int *a[10];
1.2.设int a = 8, b = 7, c = 6, x = 1;执行以下语句后x的值是
if (a > 6) if (b > 7) if (c > 8) x = 2; else x = 3;
A.0 B.1 C.2 D.3
1.3.下列代码中,正确的数组定义是
① int a[ ] = {“string”}; ② int a[5] = {0, 1, 2, 3, 4, 5};
③ char a = {“string”}; ④ char a[ ] = {0, 1, 2, 3, 4, 5};
A.① B.② C.③ D.④
1.4.字符串”abc\x43\\\np\102q”的长度是
A.9 B.12 C.13 D.17
1.5.执行下列程序后,输出的结果是
#define M(a, b) (a) > (b)?(a)+(b):(a)-(b)
void main()
{ int i = 10, j = 15; printf(“%d\n”, 10*M(i, j)); }
A.10 B.25 C.250 D.-50
1.6.执行下列程序后,输出的结果是
#define M(a, b) (a) > (b)?(a):(b)
void main()
{ int i = 10, j = 5; printf(“%d\n”, M(i, j)*10); }
A.10 B.5 C.100 D.150
1.7.计算立方数时,不可能引起二义性的宏定义是
A. #define S(x) x*x*x B.#define S(x) (x)*(x)*(x)
C.#define S(x) (x*x*x) D.#define S(x) ((x)*(x) *(x))
1.8.下列代码中,正确的是
A. char a[3][ ] = {‘abc’, ‘1’}; B. char a[ ][3] = {‘abc’, ‘1’};
C. char a[3][ ] = {“ab”, “12”}; D. char a[ ][3] = {“ab”, “12”};
1.9.设char str1[10] = “ABCDE”, str2[10] = “xyzuvw”;
则执行以下语句后的输出结果是
printf(“%d”, strlen(strcpy(str1, str2)));
A.12 B.11 C.8 D.6
1.10.以只写方式打开一个二进制文件,应选择的使用方式是
A.”a+” B.”w+” C.”rb” D.”wb”
1.11.设int x = 8, y, z; 执行y = z = x--; x = y == z后,变量x的值是
A.0 B.1 C.8 D.9
1.12.设变量m ,n ,a ,b ,c ,d均为0,执行(m = a==b)||(n=c==d)后,m ,n的值是
A. 0 ,0 B. 0 ,1 C. 1 ,0 D. 1 ,1
1.13.设int x[ ] = {2, 6, 5, 7, 9, 15, 12}, *p = x;
则不能正确引用数组元素的表达式是
A.*(p--) B.*(--p) C.*(p++) D.*(++p)
1.14.根据变量定义“static int b[5];”,b[4]的值是。
A.1 B.0 C.2 D.不确定
1.15.设int a = 9, b = 8, c = 7, x = 5;执行语句
if (a > 7) if (b > 8) if (c > 9) x = 3; else x = 4;
后x的值是
A.1 B.5 C.3 D.4
1.16 下列字符列中,可以作为“字符串常量”的是
A. ABC B. "ABC" C. ´abc´ D. ´a´
1.17下列数据类型中,不属于构造类型是
A. 实型 B.数组型 C.结构型 D.联合(共用)型
1.18下面所列常量中,都是C语言整型常量的是。
A. 0xffff 和 611 B.01b 和 0xa1 C.986.012 和 0667 D.2e4 和 0x
1.19若有以下变量定义和输入语句,要求a1、a2、c1和c2的值分别为10、20、A和B。是正确的输入方式。
int a1, a2; char c1, c2;
scanf(″%d%c%d%c数学数组的定义是什么″, &a1, &c1, &a2, &c2)
A. 10 A 20 B↙ B.10 A 20B↙ C.10A 20 B↙ D.10A 20B↙
1.20 若变量b的值为3,则执行语句 b += b -= b*b后,变量b的值是( )。
A. 3 B.0 C.-12 D.9
1.21 若a、b和c均为整型变量,则执行以下语句后,变量a、b和c的值为( )。
a = 0; b = 2; c = 1; a++ && ++b || ++c
A.1、3、2 B.0、3、2 C.1、2、2 D.0、2、2
1.22 将数学公式√|yx + ey| 写成C表达式,正确的是。
A. sqrt(abs(pow(x, y) + exp(y)))
B. sqrt(abs(pow(y, x) + exp(y)))
C. sqrt(fabs(pow(x, y) + exp(y)))
D. sqrt(fabs(pow(y, x) + exp(y)))
1.23 函数调用时,下列说法中不正确的是
A. 形参不分配内存 B.实参和形参可以同名
C.主调函数和被调用函数可以不在同一个文件中 D.函数可以使用全局变量
1.24 若有变量定义:“int i, j = 7, *p = &i;”,则与“i = j;”等价的代码是
A. i = *p; B. *p = *&j; C. i = &j; D. i = **p;
1.25 若希望存储字符串,下列各代码中,正确的是
A. char s[5] = {"ABCDE"}; B. char s[5] = {´A´, ´B´, ´C´, ´D´, ´E´};
C. char *s; s = "ABCDE"; D. char *s; scanf("%s", s);
1.26 设有代码“int a = 3;”,则执行了语句“a += a -= a * a ;”后,变量a的值是
A. 3 B. 0 C. 9 D. –12
1.27 设有如下定义,则正确的叙述为
char x[ ] = "abcdefg", y[ ] = {'a', 'b', 'c', 'd', 'e', 'f', 'g'};
A.x和y的长度和内容相同 B.x和y的长度相同
C.x的长度大于y的长度 D.x的长度小于y的长度
1.28 设a,b为字符型变量,执行scanf("a=%c,b=%c", &a, &b)后使a为',A',,b为',B',,从键盘上的正确输入是
A. 'A''B' B.'A', 'B' C.A=A,B=B D. a=A,b=B
1.29若有以下的定义,则值为3的表达式是
int a[ ] = {1,2,3,4,5,6,7,8,9,10}, *p = a;
A.p+=2,*(p++) B.p+=2, *++p C.p+=3, *p++ D.p+=2, ++*p
1.30设a为5,执行下列代码后,b的值不为2的是
A. b = a/2 B. b = 6-(--a) C. b = a%2 D. b = a < 3 ? 3: 2
二、填空题
2.1.设 int x[ ] = {1, 2, 3, 4}, y, *p = &x[1];则执行语句: y = (*--p)++;
后变量y的值为▁▁▁▁ 。
2.2.下面函数的功能是寻链表h中最大值,并返回。试给出其中空框中的代码。
struct node { int val; struct node *next;};
int traveLink(struct node *h)
{ struct node *p; int m;
for(m = h->val, p = h; p != NULL; ▁▁▁▁)
if(▁▁▁▁) m = p->val;
return m;
}
2.3.下面函数的功能是寻链表h中最小值,并返回。试给出空框中的代码。
struct node {
int val;
struct node *next;
};
int traveLink(struct node *h)
{ struct node *p; int m;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论