习题三
一、单选题
1、在C语言程序中。
A、main函数必须放在程序的开始位置
B、main函数可以放在程序的任何位置
C、main函数必须放在程序的最后
D、main函数只能出现在库函数之后
2、在C语言中,要求参加运算的数必须是整数的运算符是。
A、/
B、!
C、%
D、==
3、是C语言提供的合法的数据类型关键字。
A、Float
B、unsigned
C、integer
D、Char
4、若a是float型变量,b是unsigned型变量,以下输入语句中合法的是。
A、scanf("%6.2f%d",&a,&b);
B、scanf("%f%n",&a,&b);
C、scanf("%f%3o",&a,&b);
D、scanf("%f%f",&a,&b);
5、下面程序段的结果是。
#include<stdio.h>
main()
{ float y=1234.4321;
printf("%-8.4f\n",y);
printf("%10.4f\n",y);
}
A、1234.4321
B、1234.4321
C、-1234.4321
D、1234.4321
1234.4321 001234.4321 001234.4321 □1234.4321
6、以下程序,要输出13 a 14 b,正确的输入数据是。
#include<stdio.h>
main()
{ int a,b;
char c,d;
scanf("%d%c%d%c",&a,&c,&b,&d);
printf("%d %c %d %c\n",a,c,b,d);
}
A、13 a 14 b
B、13a 14b
C、13a14 b
D、13 a14b
7、以下有关switch语句的描述不正确的是
A、每一个case的常量表达式的值必须互不相同
B、case的常量表达式只起语句标号作用
C、无论如何default后面的语句都要执行一次
D、break语句的使用是根据程序的需要
8、假设char class的值为'3',则以下程序片段执行后的结果是
switch(class)
{ case '1':printf("First\n");
case '2':printf("Second\n");
case '3':prmtf("Third\n);break;
case '4':printf("Fourth\n");
default:printf("Error\n");
A、Third
B、Error
C、Fourth
D、Second
9、若有以下的数组定义
char x[]="12345";
char y[]={'1','2','3',',4','5'};
则正确的描述是。
A、x数组和y数组长度相同。
B、x数组长度大于y数组长度。
C、x数组长度小于y数组长度。
D、两个数组中存放相同的内容。
10、在函数中未指定存储类别的变量,其隐含存储类别为。
A、静态
B、自动
C、外部
D、存储器
11、在一个文件中定义的全局变量的作用域为。
A、本程序的全部范围
B、离定义该变量的位置最近的函数
C、函数内全部范围
D、从定义该变量的位置开始到本文件结束
12、以下程序的运行结果是。
#define MIN(a,b) (a)<(b)?(a):(b)
main()
{ int m=10,n=15,k;
k=10*MIN(m,n);
printf("%d\n",k);
}
A、30
B、180
C、15
D、200
13、以下不正确的叙述是。
A、一个include命令只能指定一个被包含文件
B、文件包含是可以嵌套的
C、一个include命令可以指定多个被包含文件
D、在#include命令中,文件名可以用双引号或尖括号括起来
14、设指针x指向的整型变量值为25,则printf("%d\n",++*x);的输出量为。
A、23
B、24
C、25
D、26
15、对于如下的结构体定义,若对变量man的出生年份进行赋值,是正确的。
struct date
{ int y,m,day;
};
struct wl
{ char name[20];
char sex;
struct date birthday;
}man;
A、y=2006
B、birthday.y=2006
C、man.birthday.y=2006
D、man.y=2006
16、下面程序的输出结果是。
main()
{ unsigned int a=3,b=10;
printf("%d\n",a<<2| b>>1);
}
A、1
B、5
C、12
D、13
17、请读程序片段:
char x=56;
x=x&056;
printf("%d.%o\n",x,x);
以上程序片段的输出结果是。
A、56,70
B、0,0
C、40,50
D、62,76
18、C语言可以处理的文件类型是( )。
A、文本文件和数据文件
B、文本文件和二进制文件
C、数据文件和二进制文件
D、数据代码文件
19、输出结果与下面程序一样的是。
for(n=100;n<=200;n++)
{ if(n%3==0)continue;
printf("%4d",n);
}
A、for(n=100;(n%3)&&n<=200;n+++)printf("%4d",n);
B、for(n=100;(n%3)||{n<=200;n++}printf("%4d",n);
C、for(n=100;n<=200;n++)if(n%3!=0)printf("%4d",n);
D、for(n=100;n<=200;n++)
{ if(n%3)
printf("%4d",n);
else
continue;
break;
}
二、填空题
1、一个函数体的范围是以开始,以结束。
2、若a,b和c均是int型变量,则执行表达式a=(b=4)+(c=2)后,a值为,b值为,c值为。
3、设有char a,b;若要通过a&b运算屏蔽掉a中的其它位,只保留第2和第8位(右起为第1位),则b 的二进制数是。
4、已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch='a'+'8'-'3'的值为。
5、设有宏定义如下:
#define MIN(x,y) (x)>(y)?(x):(y)return在c语言中是什么意思
#define T(x,y,r) x*r*y/4
则执行以下语句后,s1的值为,s2的值为。
int a=1,b=3,c=5,s1,s2;
sl=MIN(a+b,b-a);
s2=T(a++,a*++b,a+b+c);
6、若两个指针变量指向同一个数组的不同元素.可以进行减法运算和运算。
7、sp=fgets(str,n,fp);函数调用语句从(1) 指向的文件输入(2) 个字符,并把它们放到字符数组str中,sp得到(3) 的地址。(4) 函数的作用是向指定的文件输出一个字符串,输出成功,函数值为(5) 。
8、在C程序中,可以对文件进行的两种存取方式是(1) 、(2) 。
scanf("%d",&n);
if (7)
{ moveringht(a,n);
printf("循环右移的结果为:%o\n",moveright(a,n));
}
else
{ (8) ;
moveleft(a,n);
printf ("循环左移的结果为:%o\n",moveleft(a,n));
}
}
moveright(unsigned value,int n)
{ unsigned z;
z=(value>>n)|(value<<(16-n));
return(z);
}
moveletf(unsigned value,int n)
{ unsigned z;
(9) ;
return(z);
}
4、下述程序实现文件的复制,文件名来自main()中的参数。
#include<stdio.h>
void fcopy(FILE*fout,FILE*fin)
{ char k;
do
{ k=fgetc( (10) );
if(feof(fin))
break;
fputc( (11) );
}while(1);
}
void main(int argc,char*argv[])
{ FILE *fin,*fout;
if(argc!=3)
return;
if((fin=fopen(argv[2],"rb"))==NULL)
return;
fout= (12) ;
fcopy(fout,fin);
fclose(fin);
fclose(fout);
}
四、分析程序运行结果

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