一、单项选择题(本大题共20小题,每小题1分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.存储量1MB等于( )
A.23字节 B.210字节
C.220字节 D.230字节
2.下面数据中最小数是( )
A.(0.1100)2 B.(0.64)8
C.(0.8125)10 D.(0.D)16
3.在Turbo C 2.0中,寻求在线帮助可按键( )
A.F1 B.F5
C.F9 D.F10
4.设有 int a =3, b=-4, c=0;表达式((a>b)?a:b)&&c<0的值是( )
A.-4 B.0
C.1 D.3
5.若有下列程序段,欲使a=2、b=3,对应正确的数据输入方法是( )
(其中<CR>表示换行)
int a, b;
scanf(″a=%d, b=%d″,&a,&b);
A.2<CR> B.a=2 b=3<CR>
3<CR>
C.a=2, b=3<CR> D.2,3<CR>
6.下面程序段的输出结果是( )
main( )
{ int s, p;
s=p=5;
p=--s;
p++;++p;
printf(″%d\n″,p);
}
A.5 B.6
C.7 D.8
7.关于if语句下面叙述正确的是( )
A.只有当if语句中表达式的值等于1时,才执行if的内嵌语句
B.只有当if语句中表达式的值为假时,才执行if的内嵌语句
C.只有当if语句中表达式的值等于0时,才执行if的内嵌语句
D.只要if语句中表达式的值非0时,就执行if的内嵌语句
8.若执行下面程序时,从键盘输入数据3和4,则程序的输出结果是( )
main( )
{ int a,b,s;
scanf(″%d″, &a,&b);
s=a;
if(a<b) s=b
s=s*s;
printf(″%d″,s);
}
A.9 B.12
C.16 D.25
9.若int x=0; 则while(x==0); 的循环次数是( )
A.0 B.1
C.2 D.无限次
10.下面程序段的输出结果是( )
for (i=1; i<3;i++)
{for (j=1;j<3;j++)
printf(″%d ″, i+j); printf(″\n″);}
A.2 3 3 4 B.2 3 4
C.2 3 D.2
3 4 3 4
11.下面程序的输出结果是( )
mian ( )
{ int a[5]={2,4,6,8,10},i;
i=2;
printf(″%d″,a[i++]);
}
A.2 B.4
C.6 D.8
12.下面程序的输出结果是( )
main( )
{ int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int i,j,k=0;
for(i=0;i<3;i++)
k=k+a[i][0];
printf(″%d\n″,k);
}
A.27 B.33
C.39 D.45
13.以下正确的函数定义形式是( )
A. double fun(int x, int y) B. double fun(int x; int y)
C. double fun(int x, int y); D. double fun(int x, y);
14.关于变量以下不正确的说法是( )
A.在不同函数中可以使用相同名字的变量
B.形式参数是全局变量
C.在函数内定义的变量只在本函数范围内有效
D.在函数内的复合语句中定义的变量是局部变量
15.设有语句int a[4][10],*p=*a;则下列表达式中不是地址表达式的是( )
A.&a[1][2] B.a[3]
C.*(p+1*10+2) D.p+1*10+2
16.下面关于结构体类型变量定义不正确的是( )
A. struct score B. struct
{ {
int math; int math;
int Chinese; int Chinese;
}Li, Wang; }Li, Wang;
C. struct score D. struct score
{ {
int math; int math;
int Chinese; int Chinese;
}; };Li, Wang;
struct score Li, Wang;
17.下面各个运算符的优先级从左到右依次降低的是( )
A.& >> | ^ B.~ & >> |
C.>> & ^ | D.~ >> & ^
18.设有说明:int u=1, v=2;表达式:u+v<<2的值是( )
A.-1 B.1
C.9 D.12
19.下面程序段中,不能完成的功能是( )
FILE *fp;
char ch;
fp=fopen(″file1″, ″rb+″);
ch=fgetc(fp);
A.建立文件指针fp与文件file1的联系 B.从file1文件中读一个字符
C.向file1文件中写一个字符 D.打开名为file1的二进制文件
20.在格式:fread(stu,size,n,fp);中,下面说法不正确的是( )
A.stu是内存中存放数据的首地址 B.n表示读n次
C.size是一个数据块的字节数 D.fp表示文件指针
二、多项选择题(本大题共5小题,每小题2分,共10分)
在每小题列出的五个备选项中有二至五个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选、少选或未选均无分。
21.微机系统的主机包含的部件有( )
A.输入设备 B.存储器
C.输出设备 D.运算器
E.控制器
22.下面各选项中,能正确进行字符串操作的有( )
A. char s[ ]={′a′, ′b′, ′c′, ′d′, ′e′, ′\0′};
B. char s[10];s=″abcde″;
C.char s[10];strcpy(s, ″abcde″)
D.char s[10];getchar(s);
E.char s[10];gets(s);
23.若有以下定义和语句,则能正确表示数组a首元素地址的表达式有( )
double a[5],*p1
p1=a;
A.a B.p1+1
C.*p1 D.&a[1]
E.p1
24.设有说明: int u=1, v=3, w=7;下面表达式的值为3的有( )
A.w>>1&v|u B.u&v&w
C.u|v&w D.w&v<<1
E.v^w|u
25.在C语言中,下面关于文件说法正确的有( )
A.按数据的组织形式,可分为文本文件和二进制文件
B.文件只能是ASCII码文件
C.文件能用fopen( )函数打开
D.文件只能是二进制文件
E.对打开的文件可以进行读或写操作
三、简答题(本大题共4小题,每小题4分,共16分)
26.简述C语言中标识符的命名规则并说明C语言中哪些名是用标识符来标识的?
27.变量有哪几种存储类别?指明它们存储数据的区域。
28.定义char*str=″computer″;是将字符串″computer″赋值给变量str,这种说法对吗?为什么?
29.设有说明:
struct flower {char *part; char * color;} mum;
char*part_of_flower[3]={ ″花″,″茎″,″叶″};
char*seven_color[7]={ ″赤″,″橙″,″黄″,″绿″,″青″,″蓝″,″紫″};
试写出将mum的成员part定义为″花″、成员color定义为″黄″的C语句。
四、阅读分析题(本大题共6小题,每小题5分,共30分)
30.阅读下面程序,写出运行结果。
main( )
{ int a=789, x,y,z;
x=a/100;
y=a/10-10*x;
z=a-10*y-100*x
printf(″%d,%o,%x,%d″, x,y,z,100*z+10*y+x);
}
31.阅读下面程序,并回答问题:
main( )
{ int a,b,x,y;
scanf(″%d,%d″,&a,&b);
x=a*a+b*b
if(x>100)
{y=x/100;printf(″%d″,y);}
else printf(″%d″,a+b);
}
(1)若程序运行时,输入6和9,输出结果是什么?
(2)说明程序的功能。
32.阅读下面程序,并回答问题:
main( )
{ int u,v,a,b,t,r;
u=24;v=16;
if(u>v){t=u;u=v;v=t;}
a=u;b=v;
while ((r=b%a)!=0)
{b=a;a=r;}
printf(″a=%d\n″,a);
}
(1)程序输出结果是什么?
(2)该程序完成什么功能?
(3)若将while循环替换为do-while循环,请写出相应的程序段。
33.阅读下面程序,写出运行结果。
int a=5, b=5;
chang1( )
{ int a=4;
printf(″a1=%d,b1=%d\n″,a,b++);
}
chang2(int a, int b)
{ a++; b--;
}
main( )
{ chang1( );a++,b++;chang2(a,b);
printf(″a2=%d,b2=%d\n″,a,b);
}
34.阅读下面程序,写出运行结果。
#include <stdio.h>
#include <string.h>
main( )
{ char p1,p2,srt[50]= ″abc″, str1[50];
p1=″abc″;p2=″abc″;
puts(str);
strcpy(str1,p1);
p1=str1;
printf(″%s\n″,strcat(p1,p2));
strcpy(str+1,p1);
printf(″%s\n″,str);
}
35.设有说明语句int*p; 请分析下面语句的含义:
p=(int *)malloc(sizeof(int));
free(p);
五、程序设计题(本大题共2小题,每小题12分,共24分)
36.从键盘输入n*n个整型数(n≤20),组成n行n列数组,打印出其上三角数组。
37.用循环语句编程打印下列图案,并以ASCII码的形式写到c盘根目录下的1x.dat文件中。(第一行的″$″在第20列)
$
$ $ $
$ $ $ $ $
$ $ $ $ $ $ $ |