c1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C语言》期末考试模拟复习题一
一、单项选择题(在本题的每一小题的备选答案中只有一个答案是正确的,请把正确选项的序号,填入题中的括号内。多选不给分。每题1分,共20分)
1.以下不是c语言规定保留字的是(B )。
(A)float (B)integer (C)signed (D) unsigned
2.设int型变量x有初始值3,则表达式x++*5/10的值是( B )
(A)0 (B)1 (C)2 (D)3
3.下述程序执行后的输出结果是(A)
#include
main()
{
int x='f';
printf("%c\n",'a'+(x-'a'+1));
}
(A)G (B)H (C)I (D)J
4.设有程序
#include
main()
{
int i,j;
for (i=0,j=1;i<=j+1;i+=2,j--)
printf("%d\n",i);
}
在运行上述程序时,for语句中循环体的执行次数是( C )
(A)3 (B)2 (3)1 (D)0
5.在下述选项时,没有构成死循环的程序是( C )
(A)int i=100
while (1)
{
i=i%100+1;
if (i>100)
break;
}
(B)for (;;);
(C)int k=1000;
do
{
++k;
}while (k>=10000);
(D) int s=36;
while (s);--s;
6.假定a和b为int型变量,则执行下述语句组后,b的值为( D )。
a=1;
b=10;
do
{
b-=a;
a++;
} while (b--<0);
(A)9 (B)-2 (C)-1 (D)8
7.设有变量说明语句
int a=1,b=0;
则执行以下程序段的输出结果为( B )。
switch (a)
{
case 1:
switch (b)
{
case 0:printf("**0**");break;
case 1:printf("**1**");break;
}
case 2:printf("**2**");break;
}
printf("\n");
(A)**0** (B)**0****2** (C)**0****1****2** (D)有语法错误
8.以下合法的数组说明是( D )。
(A)char a[6]="string"; (B)int a[5]={0,1,2,3,4,5};
(C)char a="string"; (D)INT a[]={0,12,3,4,5};
9.下述程序代码中有语法错误的行是( D )。
int i,ia[10],ib[10]; /*第一行*/
for (i=0;i<=9;i++) /*第2行*/
ia[i]=0; /*第3行*/
ib=ia; /第4行*/
(A)第1行(B)第2行(C)第3行(D)第4行
10.若已定义
int a[9],*p=a;
并在以后的语句中未改变p的值,则不能表示a[1]地址的表达式是( C )。
(A)p+1 (B)a+1 (C)a++ (D)++p
11.若有下述说明和语句
int **pp,*p,a=10,b=20;
pp=&p;
p=&a;
p=&b;
printf("%d,%d\n",*p,**pp);
则输出结果是( D )。
(A)10,10 (B)10,20 (C)20,10 (D)20,20
12.执行下述程序后的输出结果是( D )。
#include
func(int a)
{
int b=0;
static int c=3;
a=c++,b++;
return (a);
}
main()
{
int a=2,i,k;
for (i=0;i<2;i++)
k=func(a++);
printf("%d\n",k);
}
(A)3 (B)0 (C)5 (D)4
13.执行下述程序的输出结果是( A )。
#include
main()
{
int aa[3][3]={{2},{4},{6}};
int i,*p=&aa[0][0];
for (i=0;i<2;i++)
{
if (i==0)
aa[i][i+1]=*p+1;
else
++p;
printf("%d",*p);
}
printf("\n");
}
(A)23 (B)26 (C)33 (D)36
14.读下面的程序,正确的输出结果是( D )。
#include
static int a=50;
f1(int a)
{