2015-05-31 06:30:01
阅读( 40 )
一、单选题:(每题1.5分,共60分)
1、 C语言程序的基本单位是_______.
A. 语句
B. 函数
C. 程序行
D. 字符
答案: B
2、 C语言程序由( )组成
A. 子程序
B. 过程
C. 函数
D. 主程序段程序
答案: C
3、 算法的表示方法有________。
A. 自然语言,传统流程图,N-S流程图,伪代码,计算机语言
B. 高级语言,汇编语言,机器语言
C. C语言,QBASIC语言,InterDev
D. 图形图像法,描述法,编程法
E. 计算机语言
答案: A
4、 以下程序的输出结果是
main( )
{ int k=17;
printf(“%d,%o,%x \n”,k,k,k);
}
A. 17,021,0×11
B. 17,17,17
C. 17,0×11,021
D. 17,21,11
答案: D
5、 下列变量定义中合法的是
A. short _a=1-.le-1;
B. double b=1+5e2.5;
C. long do=0xfdaL;
D. float 2_and=1-e-3;
答案: A
6、 C语言中合法的字符常量是____
A. ‘\084′
B. ‘\X43′
C. ‘ab’
D. “\0″
答案: B
7、 下面说法中正确的是( )
A. int型和long型运算先将int型转换成unsigned型,再转换
B. 两个float型运算结果为double型
C. 只要表达式中存在double型,所有其他类型数据都必须转
D. 表达式中的类型转换与运算顺序有关
答案: C
8、 以下不正确的叙述是
A. 在C程序中,逗号运算符的优先级最低
B. 在C程序中,APH和aph是两个不同的变量
C. 若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变
D. 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
答案: D
9、 设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是
A. n=(n*100+0.5)/100.0
B. m=n*100+0.5,n=m/100.0
C. n=n*100+0.5/100.0
D. n=(n/100+0.5)*100.0
答案: B
10、 下列运算符中优先级最高的是
A. <
B. +
C. &&
D. !=
答案: B
11、 若变量已正确定义并赋值,下面符合C语言语法的表达式是
A. a:=b+1
B. a=b=c+2
C. int 18.5%3
D. a=a+7:c+b
答案: B
12、 设CH是字符型变量,其值为’A',下列表达式的值是
CH=(CH > =’A'&&CH < =’Z')?(CH+32):CH
A. A
B. a
C. z
D. Z
答案: B
13、 表达式18/4*sqrt(4.0)/8值的数据类型为
A. int
B. float
C. double
D. 不确定
答案: C
14、 在C语言中,要求运算数必须是整型的运算符是
A. /
B. %
C. !
D. >
答案: B
15、 以下说法中正确的是
A. #define和printf都是C语句
B. #define是C语句,而printf不是
C. printf是C语句,但#define不是
D. #define和printf都不是C语句
答案: D
16、 下面程序的输出是
main()
{
int a=-1,b=4,k;
k=(a++<=0)&&(!(b–<=0));
printf(“%d%d%d%\n”,k,a,b);
}
A. 0 0 3
B. 0 1 2
C. 1 0 3
D. 1 1 2
答案: C
17、 设有:int a=1,b=2,c=3,d=4,m=2,n=2;
执行 (m=a > b)&&(n=c > d)后n的值是
A. 1
B. 2
C. 3
D. 4
答案: B
18、 若有条件表达式 (exp)?a++:b–,则以下表达式中能完全等价于表达式(exp)的是
A. (exp==0
B. (exp!=0)
C. (exp==1)
D. (exp!=1)
答案: B
19、 为表示关系X≥Y≥Z应使用C语言表达式:__
A. (X > =Y)&&(Y > =Z)
B. (X > =Y)and(Y > =Z)
C. (X ≥ Y ≥ Z)
D. (X ≥ Y)&(Y ≥ Z)
答案: A
20、 能正确表示逻辑关系:”a ≥ =10或a ≤ 0″的C语言表达式是
A. a > =10 or a< =0
B. a > =0||a < =10
C. a > =10 && a < =0
D. a =10
答案: D
21、 下面的程序是______
main()
{ int x=3,y=0,z=0;
if (x==y+z) printf(“****”);
else printf(“####”);
}
A. 有语法错误不能过通过编译
B. 输出****
C. 可能通过编译,但是不能通过连接,因而不能运行
D. 输出####
答案: D
22、 执行下面语句后的输出为( )
int i= -1;
if (i < =0)printf(“****\n”)
else printf(“%%%%\n”)
A. ****
B. %%%%
C. %%%%C
D. 有语法错,不能执行
答案: D
23、 若运行以下程序时,从键盘输入 ADescriptor ( 表示回车),则下面程序的运行结果是
#include
main()
{char c;
int v0=0,v1=0,v2=0;
do{
switch(c=getchar())
{case ‘a’:case ‘A’:
case ‘e’:case ‘E’:
case ‘i’:case ‘I’:
case ‘o’:case ‘O’:
case ‘u’:case ‘U’:v1+=1;
default:v0+=1;v2+=1;
}
}while(c!=’\n’);
printf(“v0=%d,v1=%d,v2=%d\n”,v0,v1,v2);
}
A. v0=7,v1=4,v2=7
B. v0=8,v1=4,v2=8
C. v0=11,v1=4,v2=11
D. v0=12,v1=4,v2=12
答案: D
24、 以下程序的输出结果是
main( )
{ int n=4;
while(n–)printf(“%d “,–n);
}
A. 2 0
B. 3 1
C. 3 2 1
D. 2 1 0
答案: A
25、 有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。下面程序是求这堆零件总数,请选择填空。
#include
main()
{int i;
for(i=100;i<200;i++)
if((i-2)%4==0)
if(!((i-3)%7))
if( ______ )
printf(“%d”,i);
}
A. i%9=5
B. i%9!=5
C. (i-5)%9!=0
D. i%9==5
答案: D
26、 以下程序的输出结果是
{ int i,j,x=0;
for(i=0;i < 2;i++)
{ x++;
for(j=0;j < 3;j++)
{ if(j%2) continue;
x++;
}
x++
}
printf(“x=%d\n”,x);
}
A. x=4
B. x=8
C. x=6
D. x=12
答案: B
27、 以下程序的输出结果是
#include
#include
main()
{ char b1[8]=”abcdefg”,b2[8],*pb=b1+3;
while (–pb > = b1) strcpy(b2,pb);
printf(“%d\n”,strlen(b2));
}
A. 8
B. 3
C. 1
D. 7
答案: D
28、 下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,请选择填空
#include
main()
{int a,b,t;
scanf(“%d%d”,&a,&b);
while( ___________ )
{if(a > b)
{t=a;a=b;b=t;}
printf(“%d,%d\n”,a,b);
scanf(“%d%d”,&a,&b);
}
}
A. !a=b
B. a!=b
C. a==b
D. a=b
答案: B
29、 下面程序的输出结果是( )。
#include
main()
{int x=10,y=10,i;
for(i=0;x>8;y=++i)
printf(”%d%d”,x–,y);
}
A. 10 1 9 2
B. 9 8 7 6
C. 10 9 9 0
D. 10 10 91
答案: D
30、 以下程序的输出结果是
main( )
{ int i,x[3][3]={9,8,7,6,5,4,3,2,1};
for(i=0;i<4;i+=2)printf(“%d ”,x);
}
A. 5 2
B. 9 1
C. 5 3
D. 9 7
答案: B
31、 若有说明: int a[3][4]={0};则下面正确的叙述是
A. 只有元素a[0][0]可得到初值0
B. 此说明语句不正确
C. 数组a中各元素都可得到初值,但其值不一定为0
D. 数组a中每个元素均可得到初值0
答案: D
32、 以下程序的输出结果是
main( )
{ char a[10]={’1′,’2′,’3′,’4′,’5′,’6′,’7′,’8′,’9′,0},*p;
int i;
i=8;
p=a+i;
printf(“%s\n”,p-3);
}
A. 6
B. 6789
C. ’6′
D. 789
答案: B
33、 以下程序的输出结果是
#define f(x) x*x
main( )
{ int a=6,b=2,c;
c=f(a) / f(b);
printf(“%d \n”,c);
}
A. 9
B. 6
C. 36
D. 18
答案: C
34、 若有说明语句
char a[]=”It is mine”;
char *p=”It is mine”;
则以下不正确的叙述是
A. a+1表示的是字符t的地址
B. p指向另外的字符串时,字符串的长度不受限制
C. p变量中存放的地址值可以改变
D. a中只能存放10个字符
答案: D
35、 请选出正确的程序段
A) int *p; B) int *s, k;
scanf(“%d”,p); *s=100;
… …
C) int *s, k; D) int *s, k;
char *p, c; char *p, e;
s=&k; s=&k;
p=&c; p=&c;
A.
B.
C.
D.
答案: C
36、 在位运算中,操作数每右移一位,其结果相当于
A. 操作数乘以2
B. 操作数除以2
C. 操作数乘以4
D. 操作数除以4
答案: B
37、 请读程序:
#include
void FUN(int S[])
{ static int J=0;
do
{
S[J] +=S[J+1];
}
while( ++J<2);
}
main()
{ int K, A[10]={ 1,2,3,4,5};
for( K=1;K<3;K++) FUN(A);
for (K=0;K<5;K++) printf(“%d”,A[K]);
}
上面程序输出结果是
A. 34756
B. 23445
C. 35745
D. 12345
答案: C
38、 下列程序段的输出结果是( )。
#include
void fun(int *x,int *Y)
{printf(”%d%d”,*X,*Y);*X=3;*Y=4;}
main()
{int X=1,Y=2;
fun(&y,&x);
prinff(”%d%d”,x,Y);
}
A. 2 1 4 3
B. 1 2 1 2
C. 2 1 2 1
D. 2 1 3 4
答案: A
39、 下面程序的输出结果是( )。
#include
main()
{int a[]={1,2,3,4,5,6,7,8,9,0},*p;
P=a:
printf(”%d\n”,*P+9);
}
A. 0
B. 1
C. 10
D. 9
答案: C
40、 分析以下程序的运行结果( )。
#include
func(int a,int b)
{
int c;
e=a+b;
retum c;
}
main() 。
{
int x=6,r;
r=func(x,x+=2);
printf(”%d\n”,r);
}
A. 14
B. 15
C. 16
D. 17
答案: C
填空题:(每题1.5分,共24分)
1、 在C语言中(以16位PC机为例),一个char型数据在内存中所占的字节数为_______;一个int型数据在内存中所占的字节数为_______
答案: 1,2
2、 设有以下变量定义,并已赋确定的值
char w; int x; float y; double z;
则表达式:w*x+z-y所求得的数据类型为__________。
答案: double
3、 若x和n均是int型变量,且x和n的初值均为5,则计算表达式后x的值为________,n的值为_________
x+=n++
答案: 10,6
4、 若有定义:int b=7;float a=2.5,c=4.7;则下面表达式的值为______
a+(int)(b/3*(int)(a+c)/2)%4
答案: 5.500000
5、 若有定义:int a=8,b=5,C;,执行语句C=a/b+0.4;后,c的值为
答案: 1
6、 以下程序不用第三个变量,实现将两个数进行对调操作:
#include
main()
{ int a , b ;
scanf (“%d%d” , &a , &b);
printf(“a=%d b=%d\n” , a , b );
a=a+b;
b=(________);
a=a-b;
printf(“a=%d b=%d\n”,a,b);}
答案: a-b
7、 直接使用printf()的格式符输出十六进制数。本题程序如下:
﹟include ﹤ stdio.h ﹥
void main()
{
int I;
scanf(”%d”,&I);
printf(”%d(10)﹤ = ﹥% x(16)﹨n”,I,I );
}
输入100的执行结果为__________。
答案: 100(10) 64(16)
8、 在c语言中,关系运算符的优先级别是——。
答案: ,=,==,!=
9、 表示“整数x的绝对值大于5”时值为“真”的C语言表达式是——。
答案: x>5||x
10、 下列程序段的输出结果是 _____________ 。
int n=’c';
switch(n++)
{ default: printf(“error”);break;
case ‘a’:case ‘A’:case ‘b’:case ‘B’:printf(“good”);break;
case ‘c’:case ‘C’:printf(“pass”);
case ‘d’:case ‘D’:printf(“warm”);
}
答案: passwarm
11、 设有以下程序:
main()
{ int n1,n2;
scanf(“%d”,&n2);
while(n2!=0)
{ n1=n2%10;
n2=n2/10;
printf(“%d”,n1);
}
}
程序运行后,如果从键盘上输入1298;则输出结果为_________。
答案: 8921
12、 下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。请填空
int n=0,c;
c=getchar();
while( _______ )
{if( ______ ) n++;
c=getchar();
}
答案: c!=’\n’,c > =’0′&&c < =’9′
13、 以下程序的运行结果是 __________________
main()
{ static char a[]={‘*’,'*’,'*’,'*’,'*’};
int i,j,k;
for(i=0;i < 5;i++)
{
printf(“\n”);
for(j=0;j < i;j++) printf(“%c”,’ ‘);
for(k=0;k < 5;k++) printf(“%c”,a[k]);
}
}
答案: ****
****
****
****
14、 若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是____,a[2][1]得到的初值是______。
答案: 0
6
15、 若有定义语句:char s[100],d[100]; int j=0, i=0;,且s中已赋字符串,请填空以实现字符串拷贝。(注:不得使用逗号表达式)
while(){ d[j]= _____________;j++;i++;}
d[j]=0;
答案: s[i++]
16、 以下函数用以求x的y次方,请填空。
double fun(double x,int y)
{
int i:
double z=1.0:
for(i-1;i_________;i++)
z=________;
return z:
}
答案: <=y z*x
程序设计题:(请在以下3题中任选2题作答,若3道全部解答,以前2道为准,每题8分,共16分)
1、 设某国今年的国民生产总值为45600亿元,若今后每年以8%的增长率增长,计算多少年后能实现国民生产总值翻两番?
答案: main()
{
int n;
float a,s;
for(s=0,n=0,a=45600.0;s<=3*45600.0;n++)
{
a=a+a*0.08;
s=a;
}
printf(“%d\n”,n);
}
本题参考答案:15
2、 编程序求1+3+5+7+9+…这样的数之和。如果累加数大于900时,则程序终止并输出结果。
答案: main()
{
int i=1,sum=0;
while(sum < =900)
{
sum=sum+i;
i=i+2;
}
printf(“\n%d”,sum);
}
参考答案: 936
3、 编程序求1~125的平方根的和并输出结果。(保留小数点两位)
答案: include “math.h”
main()
{float a,s=0;
clrscr();
for(a=1;a < =125;a++)
{s=s+sqrt(a);
}
printf(“%.2f”,s);
}
本题答案:937.08
分享给朋友:
亲~ 如果您有更好的答案 可在评论区发表您独到的见解。
您想查看更多的信息:
面试题