C++语言程序设计2021春
一、单选题
1.(2分)有以下程序
#include <stdio. h >
#include <string. h >
main ( )
{ char x[ ] = "STRING";
x[0]=0 ; x[1] ='\0' ; x[2] = '0' ;
printf ( " %d %d\n " , sizeof(x) , strlen(x)) ;
}
程序运行后的输出结果是__________。
A.6 1
B.7 0
C.6 3
D.7 1
正确答案:B
2.(2分)int a=1,b=2,c=3,d=4,m=2,n=2,e; 则执行语句e =(m=a>b)&&(n=c>d);后,m、n的值分别为______
A.2,2
B.2,0
C.0,2
D.0,0
正确答案:C
3.(2分)若有声明“char a[5]={'A','B','C','D','E'}, *p=a, i ;”,则以下语句中不能正确输出a数组全部元素值的是______。
A.for(i=0; i<5; i++) printf( "%c ", a[i]);
B.for(i=0; i<5; i++) printf( "%c ", *(a+i));
C.for(i=0; i<5; i++) printf( "%c ", *p++);
D.for(i=0; i<5; i++) printf( "%c ", *a++);
正确答案:D
4.(2分)对基类型相同的指针变量不能进行的运算是_________。
A.+
B.>
C.=
D.==
正确答案:A
5.(2分)在C程序中调用函数时,主调函数中的实参和被调函数中的形参_________
A.个数、次序必须相同,但数据类型可以不考虑。
B.个数、次序必须相同,对应参数的数据类型应相同或赋值相容。
C.个数、次序和数据类型均可以不相同。
D.对应参数数据类型应相同,但个数和次序可以不考虑。
正确答案:B
6.(2分)C语言标准库函数fread(fd,buffer,n)的功能是()。
A.从文件fd中读取长度不超过n个字节的数据送入buffer指向的内存区域
B.从文件fd中读取长度不超过n-1个字节的数据送入buffer指向的内存区域
C.从文件fd中读取长度不超过n个字符送入buffer指向的内存区域
D.从文件fd中读取长度不超过n-1个字符送入buffer指向的内存区域
正确答案:A
7.(2分)已有程序段和输入数据的形式,程序中输入语句的正确形式应当为()。
main()
{ int a;float f;
printf("Input number:");
(输入语句)
printf("\nf=%f,a=%d\n",f,a);
}
Input number:4.5□□2<CR>
A.scanf("%d,%f",&a,&f);
B.scanf("%f,%d",&f,&a);
C.scnaf("%d%f",&a,&f);
D.scanf("%f%d",&f,&a);
正确答案:D
8.(2分)设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为()。
A.int
B.float
C.double
D.不确定
正确答案:C
9.(2分)整型变量x和y的值相等且为非0值,则以下选项中,结果为零的表达式是________
A.x || y
B.x | y
C.x & y
D.x ^ y
正确答案:D
10.(2分)若有说明:static int a[3][4];则数组中各元素。()。
A.可在程序的运行阶段得到初值0
B.可在程序的编译阶段得到初值0
C.不能得到确定的初值
D.可在程序的编译或运行阶段得到初值0
正确答案:B
11.(2分)以下叙述不正确的是()。
A.一个C源程序可由一个或多个函数组成
B.一个C源程序必须包含一个main函数
C.C程序的基本组成单位是函数
D.在C程序中,注释说明只能位于一条语句的后面
正确答案:D
12.(2分)下列说法中错误的是______。
A.构成数组的所有元素的数据类型必须相同
B.一维数组元素的下标从1开始
C.引用数组元素时下标越界不报错,但下标越界的元素的值不确定
D.数组元素的下标可以是整型表达式
正确答案:B
13.(2分)设有下列程序段,则scanf函数调用语句中对结构体变量成员的不正确引用为()。
struct student
{ char name[20];
int age;
char sex;
}stu[5], *p;
p=stu;
A.scanf("%s",stu[0].name);
B.scanf("%d",p->age;
C.scanf("%c",&(p->sex));
D.scanf("%d",&stu[0].age);
正确答案:B
14.(2分)以下叙述中不正确的是()。
A.预处理命令都必须以#开始
B.在C程序中凡是以#开始的语句行都是预处理命令行
C.C程序在执行过程中对预处理命令行进行处理
D.以下是正确的宏定义 #define IBM_PC
正确答案:C
15.(2分)设有如下定义:struct sk {int a; float b; }data; int *p; 若要使p指向data中的a域,正确的赋值语句是()。
A.p=&a;
B.p=data.a;
C.p=&data.a;
D.*p=data.a
正确答案:B
16.(2分)下面程序的功能是求算式xyz+yzz=532中x,y,z的值(其中xyz和yzz分别表示一个三位数),请选择填空。
#include<stdio.h>
main()
{int x,y,z,i,result=532;
for(x=1;x<10;x++)
for(y=1;y<10;y++)
for((?);z<10;z++) {i=100*x+10*y+z+100*y+10*z+z;c语言struct头文件
A. z=x
B. z=1
C. z=0
D. z=y
正确答案:C
17.(2分)有以下程序段
char name[20];
int num;
scanf("name=%s num=%d",name,&num);
当执行上述程序段,并从键盘输入:name=Lili num=1001<回车>后,name的值为
A.Lili
B.name=Lili
C.Lili num=
D.name=Lili num=1001
正确答案:A
18.(2分)表达式:(int)((double)9/2)-(9)%2的值是__________。
A.0
B.3
C.4
D.5
正确答案:B
19.(2分)以下程序的输出结果是()。
printf("\n*s1=%15s*","chinabeijing");
printf("\n*s2=%-5s*","chi");
A.*s1=chinabeijing□□□* *s2=**chi*
B.*s1=chinabeijing□□□* *s2=chi□□*
C.*s1=□□chinabeijing* *s2=□□chi*
D.*s1=□□□chinabeijing* *s2=chi□□*
正确答案:D
20.(2分)以下是if语句的基本形式
if(表达式) 语句
其中“表达式”___________。
A.必须是逻辑表达式
B.必须是关系表达式
C.必须是逻辑表达式或关系表达式
D.可以是任何合法的表达式
正确答案:D
21.(2分)有一堆零件(100到200之间),如果分成4个零件一组则多出2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多出5个零件。下面程序是求这堆零件总数,请选择填空()。
#include <stdio.h>
main()
{int i;
for(i=100;i<200;i++)
if((i-2)%4==0)
if(!((i-3)%7))
if()
printf("%d",i);
}
A.i%9=5
B.i%9!=5
C.(i-5)%9!=0
D.i%9==5
正确答案:D
22.(2分)当说明一个结构体类型变量时系统分配给它的内存是()。
A.各成员所需内存容量的总和;
B.结构体中第一个成员所需内存数;
C.成员中占内存量最大者所需的容量;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。