C语言复习题3
一、单项选择题
1、C语言提供的合法关键字是___A____。
A、AUTO B、include
C、unsigned D、dafault
2、合法的C语言标识符是_____B_____。
A、2a B、sum
C、default D、a+b
3、下面四个选项中,不是C语言整型常量的是 C 。
A、01 B、0x11
C、081 D、-32768
4、下面四个选项中正确的实型常量是 B 。
A、0x12 B、-12345.e-3
C、1e0.5 D、e-5
5、若a为整型变量,则下面语句 B 。
a=-2L;
printf(“%d\n”,a);
A、赋值不合法 B、输出值为-2
C、输出为不确定值 D、输出值为2
6、在C语言中,要求参加运算的数必须是整数的运算符是 C 。
A、/ B、!
C、% D、==
7、字符串“\\012\012”在内存中占用的字节数是 5 个。
A、4 B、5
C、6 D、7
8、下列说法中,错误的是 B 。
A、变量的定义可以放在所有函数之外
B、变量的定义可以不放在本编译单位中,而放在其他编译单位中
C、变量的定义可以放在某个函数的函数头中
D、变量的定义可以放在某个复合语句的开头
9、在C语言中,一个int型数据在内存中占用2个字节,则int型数据的取值范围是 B 。
A、-128~127 B、-32768~32767
C、0~65536 D、0~2147483647
10、下面不正确的字符串常量的 A 。
A、’abc’ B、”12’12” //双引号、反斜杠必须转义
C、”0” D、” ”
11、char型常量在内存中存放的是 A 。
A、ASCII代码值 B、BCD代码值
C、内码值 D、十进制代码值
12、以下程序段 C 。
int x=2,y=3;
printf( x>y ? ”****=%d” : “###y=%d”,x,y);
A、输出控制格式错误 B、输出为:****x=2
C、输出为:###y=2 D、输出为:###y=3
13、以下程序的输出为 B 。
int a,b,c;
a=10;b=50;c=30;
if (a>b) a=b;
b=c;c=a;
printf(“a=%d,b=%d,c=%d”,a,b,c);
A、a=10,b=50,c=10 B、a=10,b=30,c=10
C、a=50,b=30,c=10 D、a=50,b=30,c=50
14、在C语言中,当while语句构成的循环的条件为 D 时,结束循环。
A、True B、非0 C、1 D、0
15、下列四个选项中,正确的数组定义是 C 。
A、char 4a[4] B、int I;scanf(“%d”,&I);char ch[I];
C、#define MAX 20 D、#define MAX 20.0
Char a[MAX] int a[MAX]
16、合法的数组定义是 D 。
A、int a[]=”string” B、int a[5]={0,1,2,3,4,5}
C、char a=”string” D、char a[]={0,1,2,3,4,5}或者int a[]={‘a’,’b’,’c’,’d’};
17、设有说明:char *str[10];则标识符的意义是: B 。
A、str是一个指向有10个元素的数组的指针
B、str 是一个有10个元素的数组,数组元素的数据类型是指向char型的指针
C、str是一个指向char型函数的指针
D、str是具有10个指针元素的一维指针数组,每个元素都只能指向整型变量
18、阅读下面程序:
#include <stdio.h>
int a[ ]={2,4,6,8};
main( )
{int I; int *p=a;
for (I=0; I<4; I++) a[I]=*p++;
printf(“%d\n”,a[2]);}
上面程序的输出结果是 B 。
A、6 B、8 C、4 D、2
19、在C语言中,如果对函数类型未加显示说明,则函数的隐含类型是 A 。
A、int B、char C、void D、double
20、在C语言中,当函数调用时 A 。
A、实参和形参共用存储单元
B、实参和形参各占一个独立的存储单元
C、由系统自动确定实参和形参是否共用存储单元
D、可由用户指定实参和形参是否共用存储单元
21、设有如下枚举型定义:enum color {red=1, black, white=10, green=100, blue};则枚举量blue的值为 C 。
A、5 B、3
C、101 D、11
22、当说明一个结构体变量时系统分配给它的内存是 A 。
A、各成员所需内存量的总和
B、结构中第1个成员所需内存量
C、成员中占内存量最大者所需的容量
D、结构中最后一个成员所需内存量
23、使用共用体union的目的是 A 。
A、将一组数据作为一个整体,以便与其中的成员共享同一存空间
B、将一组具有相同数据类型的数据作为一个整体,以便与其中的成员共享同一存储空间
C、将一组相关数据作为一个整体,以便程序中使用
D、将一具有相同数据类型的数据作为一个整体,以便程序中使用
24、在宏定义#define PI 301415926中,用宏名PI代替一个 C 。
A、单精度数 B、双精度数
C、常量 D、字符串
二 、 填空题
1、C语言的函数体由 { 开始,用符号}结束;函数体的前面是 语句声明 部分, 其后是执行语句。
2、在内存中存储“A”要占用 2 个字节,存储‘A’要占用 1 个字节。
3、使用“putchar( )”函数时,程序的开头必须写的一条包含命令为 stdio..h 。
4、下列是计算n!的值的程序,请填空。
Main()
{int I,s,n;
s=1;
printf(“enter n: “);
scanf(“%d”,&n);
for (I=1;I<=n;I++)
s*=I ;
printf(“s=%d”,s);
}
5、设有如下定义:int a[10]; ,则数组元素a下标的上限为 0 ,下限为 9 。
6、若自定义函数要求返回一个值,则应在该函数体中有一条 return 语句;若自定义函数要求不返回一个值,则应在该函数说明加一个类型说明符__void__。
7、引用结构变量中成员的一般形式是 结构体变量名.成员变量 。
三、程序分析题。
阅读下列程序,将输出结果或功能写到各题右侧的空白处。
1、 main( )
{ int x1, x2, x3, x4;
x1=x2=x3=x4=1;
switch(x1)
{
case 1: switch(x2)
{
case 0: x3++; break;
case 1: x4--; //X4变成0
}
case 2: x3++; x4--;
}
printf(“%d%d”, x3 , x4); //2,-1
}
2、main ( )
{ int i;
float f, sum;
for (i=1, sum=0.0;i<11;i++)
{ scanf (“%f”,&f);
sum=sum+f;
}
printf (“average=%f\n”, sum/10); //输入十个数,然后求平均值
}
3、#include<stdio.h>
main ( )
{ int i,j,x=0;
for (i=0; i<2; i++)
{ x++;
for (j=0; j<=3; j++)
{ if (j%2) continue;
x++;
}
x++;
整型常量合法要求}
printf (“x=%d”, x); //8
}
4、#include <string.h>
void invert (char str[ ])
{int i,j,k;
for (i=0, j=strlen(str)-1; i<j;i++;j--)
{k=str[i]; str[i]=str[j]; str[j]=k;} //使数组逆序排放
}
5、#include <stdio.h>
main ( )
{ int a[ ]={1,2,3,4,5,6}, *p=a;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论