C语言期末考试题2套.docx
《C语言期末考试题2套.docx》由会员分享,可在线阅读,更多相关《C语言期末考试题2套.docx(9页珍藏版)》请在冰豆网上搜索。
C语言期末考试题2套
C语言期末考试试题第一部分——单项选择题
1.(D)是合法的用户自定义标识符。
A、b-bB、floatC、D、_isw
2.若变量已正确定义并赋值,表达式(B)不符合C语言语法。
A、a*b/c; B、3.14%2 C、2,b D、a/b/c
3.(C)是不正确的字符常量。
A、'n'B、'1'C、"a" D、'101'
4.在C程序中,用(B)表示逻辑值“真”。
A、1B、非0的数C、非1的数D、大于0的数
5.(C)把x、y定义成float类型变量,并赋同一初值3.14。
A、floatx,y=3.14;B、floatx,y=2*3.14;
C、floatx=3.14,y=x=3.14; D、floatx=y=3.14;
6.若变量已正确定义,表达式(C)的值不是2。
A、2&3 B、1<<1C、a==2D、1^3
7.若变量已正确定义,语句“if(a>b)k=0;elsek=1;”和(C)等价。
A、k=(a>b)?
1:
0; B、k=a>b;
C、k=a<=b;D、a<=b?
0:
1;
8.设变量定义为“inta,b;”,执行下列语句时,输入(D),则a和b的值都是10。
scanf("a=%d,b=%d",&a,&b);
A、1010 B、10,10 C、a=10 b=10 D、a=10,b=10
9.下列程序的输出结果是(D)。
fun(inta,intb,intc)
{ c=a*b; }
voidmain()
{ intc;
fun(2,3,c);
printf(”%dn”,c);
}
A、0 B、1 C、6 D、无法确定
10.在C程序中,若对函数类型未加说明,则函数的隐含类型为(A)。
A、int B、double C、voidD、char
11.表达式strlen(”hello”)的值是(B)。
A、4 B、5 C、6 D、7
12.设变量定义为“inta[4];”,则表达式(D)不符合C语言语法。
A、*a B、a[0] C、a D、a++
13.设变量定义为“intx,*p=&x;”,则&*p相当于(A)。
A、pB、*p C、xD、*&x
14.若变量已正确定义,(A)不能使指针p成为空指针。
A、p=EOF B、p=0 C、p=’’D、p=NULL
15.对于以下的变量定义,表达式(D)不符合C语言语法。
structnode{
intlen;
char*pk;
}x={2,"right"},*p=&x;
A、p->pk B、*p.pk C、*p->pk D、*x.pk
16.有如下程序,该程序的输出的结果是(D)
intrunc(inta,intb)
{return(a+b);}
main0
{intx=2,y=5,z=8,r;
r=func(func(x,y),z);
printf(“%\d\n”,r);
}
A)12 B)13 C)14 D)15
17.对于基类型相同的两个指针变量之间,不能进行的运算是(C)
A、)< B、)= C、)+ D、)-
18.有如下程序,该程序的输出结果是(B)
longfib(intn)
{if(n>2)return(fib(n-1)+fib(n-2));
elsereturn
(2);
}
main0
{printf(“%d\n”,fib(3));
A}2 B}4 C}6 D}8
19.有如下定义,根据上述定义,能输出字母M的语句是(D)
A)prinft(“%c\n”,class[3].mane);B)pfintf(“%c\n”,class[3].name[1]);
C)prinft(“%c\n”,class[2].name[1]);D)printf(“%^c\n”,class[2].name[0]);
20.以下所列的C语言常量中,错误的是(B)
A)0xFFB)1.2e0.5C)2LD)‘\72’
21.有以下程序段
intk=0
while(k=1)k++;
while循环执行的次数是(A)
A)无限次B)有语法错,不能执行 C)一次也不执行D)执行1次
22.以下程序的输出结果是(C)
fun(intx,inty,intz)
{z=x*x+y*y;}
main()
{inta=31;
fun(5,2,a);
printf(“%d”,a);
}
A)0B)29C)31D)无定值
23.下列程序段的输出结果是(A)
voidfun(int*x,int*y)
{printf(“%d%d”,*x,*y);*x=3;*y=4;}
main()
{intx=1,y=2;
fun(&y,&x);
printf(“%d%d”,x,y);
}
A)2143 B)1212 C)1234 D)2112
24.当调用函数时,实参是一个数组名,则向函数传送的是(B)
A)数组的长度B)数组的首地址C)数组每一个元素的地址D)数组每个元素中的值
25.以下程序的输出结果是(A)
longfun(intn)
{longs;
if(n==1||n==2)s=2;
elses=n-fun(n-1);
returns;
}
main()
{printf(“%ld\n”,fun(3));}
A)1B)2C)3D)4
26.以下程序的输出结果是(B)
#defineSQR(X)X*X
main()
{inta=16,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf(“d\n”,a);
}
A)16B)2C)9D)1
27.以下函数返回a所指数组中最小的值所在的下标值,在下划线处应填入的是(D)
fun(int*a,intn)
{inti,j=0,p;
p=j;
for(i=j;iif(a[i]return(p);
}
A、)i=p B)a[p]=a[i] C)p=j D)p=i
改错题(每个程序只有一个错误,填入错误语句所在的行号以及修改后的语句)
1、下段程序的功能是先输入一个整数,然后将输入的整数输出。
1main()
2{intx;
3scanf(“%d”,x);
4printf(“x=%d\n”,x);}
行号:
3改为:
scanf(“%d”,&x);
2、下段程序的功能是求1+2+3+4+……+99+100的和。
1main()
2{intj=1,sum=0;
3while(j<=100)
4sum=sum+j;j++;
5printf(“%d”,sum);}
行号:
4改为:
{sum=sum+j;j++;}
3、下段程序的功能是当输入x的值为90时,输出“right”,否则输出“error”。
1main()
2{intx;
3if(x=90)printf(“right”);
4elseprintf(“error”);}
行号:
3改为:
if(x==90)printf(“right”);
(4)下面程序的功能是输出字符串S
1main()
2{chars[]=”china”;
3printf(“s=%s\n”,s[]);}
行号:
3改为:
printf(“s=%s\n”,s);
(5)下面程序的功能是按照下面的格式输入a和b的值,计算y=a2+b2并输出。
输入:
32?
输出:
y=13
1main()
2{inta,b;
3inty;
4scanf(“a=%d,b=%d”,&a,&b);
5y=a*a+b*b;
6printf(“y=%d\n”,y);
7}
行号:
4改为:
scanf(“%d,%d”,&a,&b);
大学《C语言》试题及答案
(二)
1.下列定义变量的语句中错误的是______。
A、int_intB、doubleint_
C、charForD、floatUS$
答案:
D
知识点:
常量、变量和标识符
2.以下不合法的用户标识符是______。
A、j2_KEYB、Double
C、4dD、_8_
答案:
C
知识点:
常量、变量和标识符
3.以下4组用户定义标识符中,全部合法的一组是______。
A、_mainencludesin
B、If-maxturbo
C、txtREAL3
D、intk_2_001?
?
?
答案:
A
知识点:
常量、变量和标识符
4.以下定义语句中正确的是______。
A、chara='A'b='B';
B、floata=b=10.0;(正解a=10.0b=10.0)
C、inta=10,*b=&a;
D、float*a,b=&a;?
?
?
答案:
C
知识点:
常量、变量和标识符
5.以下不能定义为用户标识符的是______。
A、scanfB、Void
C、_3_D、int
答案:
D
知识点:
常量、变量和标识符
6.以下有4组用户标识符,其中合法的一组是______。
A、For-subCase
B、4dDOSize
C、f2_G3IFabc
D、WORDVoiddefine
答案:
C
知识点:
常量、变量和标识符
7.C语言中最简单的数据类型包括______。
A、整型、实型、逻辑型
B、整型、实型、字符型
C、整型、字符型、逻辑型
D、整型、实型、逻辑型、字符型
答案:
B
知识点:
常量、变量和标识符
8、下列选项中,合法的C语言关键字是______。
A、VARB、cherC、integerD、default
答案:
D
知识点:
常量、变量和标识符
9.以下不能定义为用户标识符的是______。
A、MainB、_0C、_intD、sizeof
答案:
D
知识点:
常量、变量和标识符
10.下列叙述中正确的是______。
A、C语言中既有逻辑类型也有集合类型
B、C语言中没有逻辑类型但有集合类型
C、C语言中有逻辑类型但没有集合类型
D、C语言中既没有逻辑类型也没有集合类型
答案:
D