计算机国二模拟试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、C语言中标识符只能由字母、数字和 三种字符组成,且必须以 或英文字母开头。
2、变量默认的存储类型是 。
3、带符号短整型数据的数值范围为 到 。
4、设int a[10];则数组a的首元素是 。
5、标准字符输出函数为 。
6、设x为int型变量,描述“x是偶数”的表达式为 。
7、初始化值是0.618的双精度变量a的定义形式为 。
8、设char s[]=”apple”;,则数组s的长度是 。
9、表达式a=1,a+=1,a+1,a++的值是 。
10、设int a=5,b=2; float c=32.8;,则表达式b*(int)c%a的值为 。
11、执行语句”a=5+(c=6);”后,变量a、c的值依次为 。
12、执行语句”s=0;n=5;while(--n) s+=n;”后,变量s、n的值依次为 。
13、下列程序段:
int x=3; while(!x) printf(“%d”,--x);
循环执行的次数是 。
14、设int a[3][4]={{1,3,5,7},{2,4,6,8}};则a[1][2]的值为 。
15、若使用fopen函数打开一个新的二进制文件,对该文件进行读写操作,则文件使用方式字符串应该是 。
16、若有声明“char a[15]=”Windows-9x”;”,语句”printf(“%s”,a+8);”的输出结果为 。
17、结束本次循环的命令为 。
18、设int a[]={1,2,3,4,5,6,7,8},*s=a;则*(s+1)的值是 。
二、单项选择题(在每小题的四个答案中选出一个正确的答案,并将其号码填在题干后的括号内。每小题2分,共40分)
19、可以用作C程序标识符的是( )
①int ②for ③2a ④a2
20、C语言中,int类型数据占2个字节,则long类型数据占字节数( )
①1 ②2 ③4 ④8
21、设char a=’\n’;则变量a中( )
①包含1个字符 ②包含2个字符 ③包含3个字符 ④是非法表示
22、以下可以判断变量a、b的值均不为0的表达式是( )
①a=b=0 ②a!=0&&b!=0 ③a!=0||b!=0 ④!a=0&&b=0
23、有以下程序段:
int m=0,n=0; char c=’a’;
scanf(“%d%c%d”,&m,&c,&n);
printf(“%d,%c,%d\n”,m,c,n);
若从键盘上输入:10A10<回车>,则输出结果是( )
①10,A,10 ②10,a,10 ③10,a,0 ④10,A,0
24、以下一维数组a的正确定义是( )
①int a[5]; ②int a(5); ③int a{5}; ④int a5;
25、设int a=3,b=4,c=5;表达式(a+b)>c&&b==c的值是( )
①2 ②-1 ③0 ④1
26、对于while语句,错误的说法是( )
①用条件控制循环体的执行次数 ②循环体至少要执行一次
③循环体有可能一次也不执行 ④循环体中可以包含若干条语句
27
、若int类型数据占2个字节,则下列语句的输出为( )
int k=-1; printf(“%d,%u\n”,k,k);
①-1,-1 ②-1,32767 ③-1,32768 ④-1,65535
28、在C语言中,不正确的int类型的常数是( )
①32768 ②0 ③037 ④0xAF
29、若函数能被其它编译单位引用,那么函数定义时的存储类型应选用( )
①auto ②static ③extern ④register
30、设int a,*p;则语句p=&a;中的运算符“&”的含义是( )
①位与运算 ②逻辑与运算 ③取指针内容 ④取变量地址
31、设float c,f;,将数学表达式c= (f-32)能正确表示成C语言赋值表达式的是( )
①c=5*(f-32)/9 ②c=5/9(f-32) ③c=5/9*(f-32) ④c=5/(9*(f-32))
32、数据-35.8在文本文件中占用的字节个数是( )
①4 ②5 ③6 ④8
33、设int a=9,b=20;则printf(“%d,%d\n”,a--,--b);的输出结果是( )
①9,19 ②9,20 ③10,19 ④10,20
34、while(!x)中的(!x)与下面条件( )等价。
①x==1 ②x!=1 ③x!=0 ④x==0
35、比较两个字符串大小的函数是( )
①strlen() ②strcmp() ③strlcat() ④strchar()
36、以下不能看作一条C语句的是( )
①{;} ②a=5,b=5,c=5; ③if(x>=0&&y=0); ④if(x==0)a=5;b=10;
37、对二维数组的正确定义是( )
①int a[][]={1,2,3,4,5,6}; ②int a[2][]={1,2,3,4,5,6};
③int a[][3]={1,2,3,4,5,6}; ④int a[2,3]={1,2,3,4,5,6};
38、设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:
scanf(“i=%d,f=%f”,&i,&f); 为了把100和765.12分别赋给i和f,则正确的输入为( )
①100765.12 ②i=100,f=765.12 ③100,7651.2 ④i=100f=765.12
三、判断题(每题2分,共20分。判断下列各题正误,正确的打“√”,错误的打“╳”。)
39、( )在C语言中的每个函数必须要有一个明确的return语句才能返回调用程序。
40、( )= =和=号的作用完全相同。
41、( )在C语言中定义的数组,其下标是从1开始的。
42、( )有数组定义int a[2][2]={{1},{2,3}};则a[0][1]的值为0。
43、( )break语句只能出现在循环语句内。
44、( )p*=n+1相当于p=p*n+1。
45、( )设char x[]=”12345”,y[]={‘1’,’2’,’3’,’4’,’5’,’\0’};那么x数组的长度等于y数组的长度。
46、( )若有int i=5,j=10;则执行完语句:
switch(i){
case 4: j++;
case 5: j--;
case 6: j++;
case 7: j-=2;
default: ;
}
后j
的值为8。
47、( )int y; 执行表达式(y=4)||(y=5)||(y=6)后,y的值为6。
48、( )x为整型,则double(x)将x强制转换为双精度类型。
四、分析程序功能写出程序运行结果题(每小题7分,共70分)。请在每小题的程序右侧空白处写出程序的运行结果。
49、main()
{int a=1,b=2;
a=a+b;b=a-b;a=a-b;
printf(“%d,%d\n”,a,b);
}
50、main()
{int a=13,b=17,c=9,m;
if(a>b) {if(a>c) m=a; else m=c;}
else {if(b>c) m=b;else m=c;}
printf(“m=%d”,m);
}
51、main()
{int i;
for(i=0;i<3;i++)
switch(i)
{case 0: printf(“%d”,i);
case 2: printf(“%d”,i);
default: printf(“%d”,i);
}
}
52、main()
{int i,j;
for(i=1;i<=4;i++)
{for(j=1;j<=i;j++)
printf(“*”);
printf(“\n”);
}
}
53、main()
{int m,a[20]={1,1};
for(m=0;m<5;m++)
{printf(“%d”,a[m]);
a[m+2]=a[m+1]+a[m];
}
}
54、int a1=300,a2=400;
main()
{int a3=100,a4=200;
sub1(a3,a4);
sub1(a1,a2);
printf(“%d,%d,%d,%d\n”,a1,a2,a3,a4);
}
sub1(int x,int y)
{a1=x; x=y; y=a1; }
55、main()
{int x=20,y=40,*p;
p=&x;
printf(“%d,”,*p);
*p=x+10;
p=&y;
printf(“%d\n”,*p);
*p=y+20;
printf(“%d,%d\n”,x,y);
}
56、设从键盘输入:543
sub(int n)
{int s=1;
do{s*=n%10; n/=10; }
while(n);
return s;
}
main()
{int n;
scanf(“%d”,&n);
n=sub(n);
printf(“%d\n”,n);
}
57、int f(int a)
{
int b=4;
static int c=4;
b++;
c++;
return(a+b+c) ;
}
main()
{
int a=4,i;
for(i=0;i<3;i++)
print(“%d,”,f(a));
}
58| main()
{int a[3] [3]={1,4,17,3,6,19,2,5,18};
int i,s=0;
for (i=0;i<=2;i++)
s=s+a[i][2-i];
printf(“s=%d\n”,s);
}
五、程序设计题(每题10分,共30分)请根据题目要求编写程序。
59、写一程序,从键盘上输入一个年份year(4位十进制数),判断其是否是闰年。闰年的条件是; 能被4整除、但不能被100整除,或者能被400整除。(要求只能使用一次if-else语句,并不能出现嵌套。)
60、求1~100内的所有偶数和。(要求用while语句编写,物质刺激变量只能递增。)
61 、输入一个不超过100个字符的字符串,要求以相反的顺序输出各个字符。(要求用for 语句编写)
2006年C语言升学考试试卷答案
一、填空题(每空2分,共40分)
1、下划线 下划线 2、auto(自动) 3、-32768 32767 4、a[0] 5、putchar()
6、x%2==0 7、double a=0.618 8、6 9、2 10、4 11、11,6
12、10,0 13、0 14、6 15、wb+或”wb+” 16、9x 17、continue
18、2
二、单项选择题(每题2分,共40分)
19.4 20.3 21.1 22.2 23.1 24.1 25.3 26.2 27.4 28.1
29.3 30.4 31.1 32.3 33.1 34.4 35.2 36.4 37.3 38.2
三、判断题(每小题2分,共20分)
39、╳ 40、╳ 41、╳ 42、√ 43、╳ 44、╳ 45、√ 46、√ 47、╳ 48、╳
四、程序运行结果(每小题7分,共70分)
49、2,1 50、m=17 51、000122
52、* 53、11235 54、100,400,100,200
** 55、20,40
*** 30,60
**** 56、60 57、14,15,16 58、s=25
五、程序设计题(每小题10分,共30分)
59、main()…………………………………………….…( 1分)
{ int year;……………………………………………( 1分)
scanf(“%d”,&year); …………………………………(2分)
if(year%4==0&&year%100!=0||year%400==0) ……(4分)
printf(“%d is a leap year\n”,year); ………….…( 1分)
else
printf(“%d is a leap year\n”,year); …………..…( 1分)
}
60、(1)main()………………………………………….…( 1分)
{inti=1,a=0; ………………………………………( 2分)
while(i<=100) ……………………………….……( 2分)
{if(i%2==0)s+=i; …………………………………( 3分)
i++;}…………………………………………….…( 1分)
printf(“%d”,s); ………………………………….…( 1分)
}
(2)main()………………………………………..……( 1分)
{int i=2,s=0; ………………………………………( 2分)
while(i<=100) ………………………………..……( 2分)
{s+=i; …………………………………..…( 2分)
i+=2;} ………………………….……( 2分)
printf(“%d”,s); ……………………………………( 1分)
}
61、(1
)#include
main()…………………………………………………………( 1分)
{char s[100]; ………………………………………………( 1分)
int i,len; ……………………………………………………( 1分)
scanf(“%s”,s); ……………………………………………( 1分)
len=strlen(s); ………………………………………………( 1分)
for(i=len-1;i>=0;i--)………………………………………( 2分)
printf(“%c”,s[i]); …………………………………( 2分)
}
(2) #include
#include
main()………………………………………………………( 1分)
{char s[100]; ………………………………………………( 1分)
int i,len; …………………………………………………( 1分)
gets(s); ……………………………………………………( 1分)
len=strlen(s); ……………………………………………( 1分)
for(i=len-1;i>=0;i--)……………………………………( 2分)
printf(“%c”,s[i]); ………………………………( 1分)
}