C_11练习题答案

发布时间:2023年12月22日

一、单项选择题(本大题共20小题,每小题2分,共40分。在每小题给出的四个备选项中选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。)

1,在C语言中,合法的长整型常数是(A)

A. OxOL
B. 4962710M
C. 324562&
D. 216D

2,设有定义: int a[10],*p=a+6,*q=a; ,则下列运算哪种是错误的(B)

A. p-q
B. p+q
C. p+3
D. p>q

3,下列语句中符合C语言语法的赋值语句是(C)

A. a=1+b+c=a+1;
B. a=(1+b,c-atl);
C. a=(1+b,b++,a+1);
D. a=l+b,c=a+1

  1. 下面的叙述中不正确的是(B)

A.用typedef可以定义各种类型名,但不能用来定义变量
B.用typedef可以增加新类型
C.用typedef只是将已存在的类型用一个新的标识符来代表
D.使用typedef有利于程序的通用和移植

5,设有数组定义: char array [7]-“China”;则数组array所占的空间为(D)

A. 4 个字节
B. 5个字节
C. 6个字节
D. 7个字节

6.已知字母a的ASCII值为十进制的97,下面程序的输出是(D)

#include <stdio.h>
void main
{
char cl,c2;
cl=‘a’+6’-2’; c2=‘a’+‘6’-‘3’;
printf(“%c,%din”,c2,cl);
}

A. 输出不确定的值
B. d,e
C. e, f
D. d, 101

7,以下正确定义一维数组的选项是(B)

A. mta[5]={0, 1,2,3,4,5);
B. char a[]= “ABC”;
C. char a[]= “ABC”??. char a=“ABC”;
D. int a[5]=“123”;

8若定&inti;则以下循环语句的循环执行次数是(forfi=2; i=0;) printf(“%d”, i-)
B

A.无限次
B. 0次
C. 1次
D. 2次

  1. 与以下定义等价的是(C)
    int*p4

A. int p4]
B. intp
C. int
(p4])
D. int (*p)[4]

10.假定a和b为int型变量,则执行以下语句后b的值为(D)
a=1;b=10;
do {b-=a;a++;)
while(b–<0);

A. 9
B. -2
C. -1
D. 8

  1. 请选出正确的程序段(C)
    A. int p;
    scanf(“%d”,p);
    ‘’‘’
    B. int *s,k;
    *s=100;

C. int *s, k;
char *p, c;
s=&k;
p=&c;
*p=‘a’;

D. int *s, k;
char *p, c;
s=&k;
p=&c;
S-p;
*s=1;

12.若有以下的说明和语句:
#include <stdio.h>
void main()
{ int t[3][2], *pt[3],k;
for(k=0; k<3;k++) pt[k]=t[k]; }

C

A. &t[3][2]
B. *pt[0]
C. *(pt+1)
D. &pt[2]

  1. 若有以下定义和语句:doubler=50,*p=&r; *p-T; 则以下正确的叙述是(D)

A. 两处的p 含义相同,都说明给指针变量p赋值
B.在double r-50,p-&r;中,把r的地址赋值给了p所指的存储单元
c.语句
p-T:把变量r的值赋给指针变量p
D.语句
p-t:取变量r的值放回r中

14.执行以下程序后, y的值是(C)

#include <stdio.h>
void main ()
{
int a0={2,4,6,8,10};
int y=1,x.p;
p=&a[1];
for(x=0;x<3;x++) y+=
(p+x);
printf(“%d\n”,y);
}

A17
B18
C19
D20

15.当说明一个共用体变量时,系统分配给它的内存是?

A.第一个成员所需内存空间
B. 各成员所需内存空间之和
c. 各成员所需内存空间的最大值
D.最后一个成员所需内存空间

16, 设ntx=1, y-1:表达式(! x++&&y-) 的值是(A)

A.0
B. I
C. 2
D. -1

  1. 要求函数的功能是交换x 和y中的值,且通过正确调用返回交换结果。能正确执行功能的函数是(D)

A. funa (intx, inty) {int*p: *p=*x: x=*y: y=*p: }
B. fund (intx,inty) {intt; tx; xy: yt: }
C. fune (int xs intg) {*x=*y: *y=x: }
D. fund fint
x, int *y) {*x=*x+*y; *y=*x-*y: *x=*x-*y: }

18以下程序的输出结果是(A)

#include <stdio.b>
#include < string.h>
void mainz()
{ char *s1=“ABCDEF”,*s2=“aB”;
sl++;s2++;一printf(“%d”,strcmp(s1,s2));
}

A. 正数
B. 负数
C. 零
D.

19.一下程序的运行结果是(C)

#include <stdio.h>

void sub(int s[], int *y) {
   
    static int t = 3;
    *y = s[t];
    t--;
}

int main() {
   
    int a[] = {
   1, 2, 3, 4};
    int i, x = 0;

    for (i = 0; i < 4; i++) {
   
        sub(a, &x);
    }

    printf("%d\n", x);

    return 0;
}

A. 1234
B. 4321
C. 0000
D. 4444

  1. 以下不能正确赋值的是(A)

A. char s1[10];s1=“test”;
B. char s20={t’e’s,'t}
C. char s3[20]=“test”;
D. char s4[4]={‘t’,‘e’,‘s’,‘t’}

二、程序阅读题(本大题共5小题,每小题6分,共30分。请将程序的运行结果填写在答题纸的相应位置上。)

passwarn

#include <stdio.h>
void main()
{
    int n='c';
switch(n++)
{
   default: printf("error"); break;
case 'a': case 'A': case 'b': case 'B': printf("good"); break;
case 'c': case 'C': 
文章来源:https://blog.csdn.net/weixin_47431459/article/details/135015591
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。