一、填空题
1、设x是一个整数(16bit),若要通过xly使x低8位置1,高8位不变,则y的八进制数是_______。
2、结构化程序由________、________ 、________ 3种基本结构组成。
3、C语言源程序文件的后缀是 ;经过编译后,生成文件的后缀是 ;经过连接后,生成文件的后缀是
4、假设变量a、b均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为_______。
5、若采用十进制数的表示形式,则077为_______,0111为_______,0xab为_______。
6、下面程序段的运行结果是_______。
char s[20]="abcd";
char*sp=s;
sp++;
puts(strcat(sp,"ABCD"));
7、执行下面程序段后,k的值是_______。
k=1;n=263;
do{k*=n%10;n/=10;} while(n);
8、设有以下定义和语句,请在printf语句的_______中填上能够正确输出的变量及相应的格式说明。
union
{int n;doublex;}num;
num.n=10;
num.x=10.5;
printf("_______",_______);
9、若有以下定义和语句,为使变量c1得到字符’A',变量c2得到字符’B’,正确的输入形式是_______。
char cl,c2;
scanf("%4c%4c",&cl,8&c2);
10、设有以下宏定义:
#define WIDTH80
#define LENGTH(WIDTH+40)
则执行赋值语句:k=LENGTH*20;(k为int型变量)后,k的值是_______。
二、选择题
11、下面4个选项中,是C语言关键字的选项是( )。
A.auto B. switch C. signed D. if
Enum typedef union struct
include continue scanf type
12、已知各变量的类型说明如下:
int k,a,b;
unsigned long w=5;
double x=1.42;则以下不正确的表达式是( )。
A.x%(-3) B.w+=-2
C.k=(a=2,b=3,a+B. D.a+=a-=(b=4)*(a=3)
13、已有如下定义和输入语句,若要求al,a2,c1,c2的值分别为10、20、A和B,当从第一列开始输入数据时,正确的数据输入方式是。(注:口表示空格)
int a1,a2;
char c1,c2;
scanf("%d%c%d%c”, &a1,&c1,&a2,&c2);
A.10A□20B<回车> B.10□A□20□B<回车>
C.10A□20B<回车> D.10A20□B<回车>
14、设x、y和z均为int型变量,则执行语句x=(y=(z=10)+5)-5;后,x、y和z的值是( )。
A.x=10 B.x=10 C.x=10 D.x=10
y=15 y=10 y=10 y=5
z=10 z=10 z=15 z=10
15、若有说明:inta[3][4];,则对a数组元素的正确引用是( )。
A.a[3][4] B.a[1,3] C.a[i+1][0] D.a(2)(1)
16、以下叙述不正确的是( )
A.一个C源程序可由一个或多个函数组成
B.一个C源程序必须包含一个main函数
C.C程序的基本组成单位是函数
D.在C程序中,注释说明只能位于一条语句的后面
17、下面程序段的运行结果是( )。
a=1;b=2;c=2;
while(aprintf("%d,%d,%d",a,b,C.;
A.1,2,0 B.2,1,0 C.1,2,1 D.2,1,1
18、以下程序有语法性错误,有关错误原因的正确说法是( )。
#include int main() {int G=5,k; void prt_char(); ----- k=prt_char(G); --- } A.语句void prt_char();有错,它是函数调用语句,不能用void说明 B.变量名不能使用大写字母 C.函数说明和函数调用语句之间有矛盾 D.函数名不能使用下划线 19、若有说明:char*language[]={"FORTRAN","BASIC","PASCAL", "JAVA","C");则表达式*language[1]>*language[3]比较的是( )。 A.字符F和字符P B.字符串BASIC和字符串JAVA C.字符B和字符J D.字符串FORTRAN和字符串PASCAL 20、以下与库函数strcpy(char*p1,char*p2)功能不相等的程序段是( )。 A)void strcpyl(char xpl,char*p2) {while((*p1++=*p2++)!=\\0');} B)void strcpy1(char *pl,char *p2) {while((*pl=*p2)!=\\0){p1++;p2++;}} C)void strcpy1(char *pl,char *p2) {while(*p2)*p1++=*p2++;} D)void trcpyl(char *p1,char *p2) {while((*pl++=*p2++);)*p='\\0';} 21、以下程序的运行结果是( )。 #include int fun(int n) {int m=0,f=-1,i; for(i=1;i<=n;i++) {m=m+i*f; f=-f; } return m; int main() {printf("m=%d\\n",fun(10)); return(0); A.m=5 B.m=-6 C.m=6 D.m=-5 22、当运行以下程序时,从键盘输入: ab<回车> C<回车> def<回车> 则下面程序的运行结果是( )。 #include #defineN6 int main() {charc[N]; int i=0; for(;i return 0; } A.abcdef B.a C.b D.ab b c c c d d e f 23、下面程序段的运行结果是( )。 char a[7]="abcdef"; char b[4]="ABC"; strcpy(a,B.; printf("%c",a[5]); A.口 B.\\0 C.e D.f(其中口表示1个空格) 24、执行以下程序段后的输出是( )。 Int i=-1; if(i<=0)printf(”****\\n") else printf("%%%%\\n"); A.**** B.有语法错,不能正确执行 C.%%%%C D.%%%% 25、下面程序的运行结果是( )。 #include int main() { int i; for(i=1;i<=5;i++) switch(i%5) { case 0: printf("*"); break; case 1: printf("#"); break; default: printf("\\n"); case 2: printf("&."); } return 0; } A)#&8&&* B)#& C)# D)#& & & &* & * & * 三、读程序填空 26、以下程序的运行结果是_______。 #include int main() {int m=177; printf("%o\\n",m); return 0; } 27、以下程序的输出结果为_______。 #include int main() {short i; i=一4; printf("\\ni:dec=%d,oct=%o,hex=%x,unsigned=%u\\n",i,i,i,i); return 0; } 28、为了使以下程序的输出结果为s=1,t=5,输入值a和b应满足的条件是_______。 #include int main() {ints,t,a,b; scanf("%d,%d”,&a,&b); s=1; t=1; if(a>0)s=s+1; if(a>b)t=s+t; else if(a==b)t=5; else t=2*s; printf("s=%d,t=%d",s,t); return 0; } 29、若运行以下程序时输入字符为Q,则程序的运行结果是_______。 #include int main() {char ch; scanf("%c",&ch); ch=(ch>=′A'&&ch<='Z')?(ch+32):ch; ch=(ch>='a'&&ch<='z')?(ch-32):ch; printf("%c",ch); return 0; } 30、下面程序段的运行结果是_______。 i=1;a=0;s=1; do{a=a+s*i;s=-s;i++;}while(i<=10); printf("a=%d",a); 31、以下search函数的功能是利用顺序查找法从数组a的10个元素中对关键字m进行查找。顺序查找法的思路是:从第一个元素开始,从前向后依次与关键字比较,直到找到此元素或查找到数组尾部时结束。若找到,则返回此元素的下标;若仍未找到,则返回值一1。请填空。 #include int search(int a[10],int m) {int i;for(i=0;i<=9;i++) if(_______) return(i); return(-1); int main() {int a[10],m,i,no; no=search(_______); if(_______) printf("\\nOK FOUND!%d",no+1); else printf("\\nSorry Not Found!"); return(0); } 32、以下程序的功能是求1000以内的水仙花数。(提示:所谓水仙花数是指一个3位正整数,其各位数字的立方之和等于该正整数。例如:407=4×4×4+0× 0×0+7×7×7,故407是一个水仙花数。)请填空。 #include int main() {int x,y,z,a[8],m,i=0; printf("The special numbers are:\\n"); for(_______;m++) {x=m/100; y=_______: z=m%10; if(x*100+y*10+z==x*x*x+y*y*y+z*z*z) {_______:i++;} } for(x=0;xprintf("%6d",a[x]); return 0; } 33、以下程序的运行结果是_______。 #include int main() {int a[10]={19,23,44,17,37,28,49,36},*p; p=a; p+=3; printf("%d\\n",*p+3); return(0); } 四、编程题 34、从键盘输入两个字符串a和b,要求不用库函数strcat把串b的前5个字符连接到串a中;如果b的长度小于5,则把b的所有元素都连接到a中。试编程。 35、试利用结构体类型编制一个程序,实现输入一个学生的数学期中和期末成绩,然后计算并输出其平均成绩。 参 一、填空题 1、0377 2、【1】顺序结构【2】选择结构【3】循环结构 3、【1】.c【2】.obj【3】.exe 4、9 5、【1】63【2】73【3】171 6、bedABCD 7、36 8、【1】%If【2】num.x 9、A囗囗囗B囗囗囗<回车> 10、2400 二、选择题 11、B 12、A 13、A 14、A 15、C 16、D 17、A 18、C 19、C 20、D 21、A 22、D 23、D 24、B 25、B 三、读程序填空 26、261 27、i:dec=-4,oct=177774,hex=fffc,unsigned=65532 28、a<=0且a==b 29、Q 30、a=-5 31、【1】a[i]==m【2】a,m【3】no>=0 32、【1】m=100;m<1000【2】m/10-x*10【3】a[i]=m 33、20 四、编程题 34、#include #include int main() {char a[80],b[80]; int i=0,j; printf("Input two strings.\\n"); gets(a);gets(b); while(a[i++]!='\\o'); for(j=0,i--;j<5&&b[j]!='\\0';j++) a[i++]=b[j]; a[i]= '\\o'; puts(a); return 0; } 35、#include int main() {struct study int mid; int end; int average; }math; scanf("%d%d",&math.mid,&.math.end); math.average=(math.mid+math.end)/2; printf("average=%d\\n",math.average); return 0; }下载本文