东北大学秦皇岛c语言考试题13.docx
《东北大学秦皇岛c语言考试题13.docx》由会员分享,可在线阅读,更多相关《东北大学秦皇岛c语言考试题13.docx(26页珍藏版)》请在冰豆网上搜索。
东北大学秦皇岛c语言考试题13
一、选择题答案
1.以下所列的C语言常量中,错误的是
A)0xFF
B)1.2e0.5
C)2L
D)'\72'
你所选择的答案是:
*,正确答案是:
B×
2.有以下程序段
intk=0
while(k=1)k++;
循环执行的次数是
A)无限次
B)有语法错,不能执行
C)一次也不执行
D)执行1次
你所选择的答案是:
*,正确答案是:
A×
3.以下程序执行后sum的值是
main()
{inti,sum;
for(i=1;i<6;i++)sum+=i;
printf("%d\n",sum);
}
A)15
B)14
C)不确定
D)0
你所选择的答案是:
*,正确答案是:
C×
4.下列程序段的输出结果是
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
你所选择的答案是:
*,正确答案是:
A×
5.当调用函数时,实参是一个数组名,则向函数传送的是
A)数组的长度
B)数组的首地址
C)数组每一个元素的地址
D)数组每个元素中的值
你所选择的答案是:
*,正确答案是:
B×
6.设有以下说明语句
structex
{intx;floaty;charz;}example;
则下面的叙述中不正确的是
A)struct结构体类型的关键字
B)example是结构体类型名
C)x,y,z都是结构体成员名
D)structex是结构体类型
你所选择的答案是:
*,正确答案是:
B×
7.以下有4组用户标识符,其中合法的一组是
A)For
-sub
Case
B)4d
DO
Size
C)f2_G3
IF
abc
D)WORD
void
define
你所选择的答案是:
*,正确答案是:
C×
8.以下程序的输出结果是
#include"stdio.h"
main()
{
inta,b;
for(a=1,b=1;a<=100;a++)
{
if(b>=10)break;
if(b%3==1)
{b+=3;continue;}
}
printf("%d\n",a);
}
A)101
B)6
C)5
D)4
你所选择的答案是:
*,正确答案是:
D×
9.在16位C编译系统上,若定义longa;,则能给a赋40000的正确语句是
A)a=20000+20000;
B)a=4000*10;
C)a=30000+10000;
D)a=4000L*10L;
你所选择的答案是:
*,正确答案是:
D×
10.若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是
A)fopen("A:
\user\abc.txt","r")
B)fopen("A:
\\user\\abc.txt","r+")
C)fopen("A:
\user\abc.txt","rb")
C)fopen("A:
\\user\\abc.txt","w")
你所选择的答案是:
*,正确答案是:
B×
11.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\101'是
A)字符A
B)字符a
C)字符e
D)非法的常量
你所选择的答案是:
*,正确答案是:
A×
12.已知i、j、k为int型变量,若从键盘输入:
1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是
A)scanf("%2d%2d%2d",&i,&j,&k);
B)scanf("%d%d%d",&i,&j,&k);
C)scanf("%d,%d,%d",&i,&j,&k);
D)scanf("i=%d,j=%d,k=%d",&i,&j,&k);
你所选择的答案是:
*,正确答案是:
C×
13.以下程序的功能是:
按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:
main()
{intn,k;
floatscore,sum,ave;
sum=0.0;
for(n=1;n<=10;n++)
{for(k=1;k<=4;k++)
{scanf("%f",&score);sum+=score;}
ave=sum/4.0;
printf("NO%d:
%f\n",n,ave);
}
}
上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。
这条语句是
A)sum=0.0;
B)sum+=score;
C)ave=sun/4.0;
D)printf("NO%d:
%f\n",n,ave);
你所选择的答案是:
*,正确答案是:
A×
14.有以下程序
main()
{chara[]={'a','b','c','d','e','f','g','h','\0'};inti,j;
i=sizeof(a);j=strlen(a);
printf("%d,%d\b"i,j);
}
程序运行后的输出结果是
A)9,9
B)8,9
C)1,8
D)9,8
你所选择的答案是:
*,正确答案是:
D×
15.以下程序中函数reverse的功能是将a所指数组中的内容进行逆置。
voidreverse(inta[],intn)
{inti,t;
for(i=0;i
{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}
}
main()
{intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;
reverse(b,8);
for(i=6;i<10;i++)s+=b[i];
printf("%d\n",s);
}
程序运行后的输出结果是
A)22
B)10
C)34
D)30
你所选择的答案是:
*,正确答案是:
A×
16.有以下程序
main()
{intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};
inti,s=0
for(i=0;i<4;i++)s+=aa[i][1];
printf("%d\n",s);
}
程序运行后的输出结果是
A)11
B)19
C)13
D)20
你所选择的答案是:
*,正确答案是:
B×
17.有以下程序
#include
main()
{FILE*fp;inti=20,j=30,k,n;
fp=fopen("d1.dat""w");
fprintf(fp,"%d\n",i);fprintf(fp,"%d\n"j);
fclose(fp);
fp=fopen("d1.dat","r");
fp=fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);
fclose(fp);
}
程序运行后的输出结果是
A)2030
B)2050
C)3050
D)3020
你所选择的答案是:
*,正确答案是:
A×
18.有以下程序
intfa(intx)
{returnx*x;}
intfb(intx)
{returnx*x*x;}
intf(int(*f1)(),int(*f2)(),intx)
{returnf2(x)-f1(x);}
main()
{inti;
i=f(fa,fb,2);printf("%d\n",i);
}
程序运行后的输出结果是
A)-4
B)1
C)4
D)8
你所选择的答案是:
*,正确答案是:
C×
19.有以下程序
voidss(char*s,chart)
{while(*s)
{if(*s==t)*s=t-'a'+'A';
s++;
}
}
main()
{charstr1[100]="abcddfefdbd",c='d';
ss(str1,c);printf("%s\n",str1);
}
程序运行后的输出结果是
A)ABCDDEFEDBD
B)abcDDfefDbD
C)abcAAfefAbA
D)Abcddfefdbd
你所选择的答案是:
*,正确答案是:
B×
20.有以下程序
#include
main()
{char*p,*q;
p=(char*)malloc(sizeof(char)*20);q=p;
scanf("%s%s",p,q);printf("%s%s\n",p,q);
}
若从键盘输入:
abcdef<回车>,则输出结果是:
A)defdef
B)abcdef
C)abcd
D)dd
你所选择的答案是:
*,正确答案是:
A×
21.以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序。
#include
voidf(charp[][10],intn)
{chart[20];inti,j;
for(i=0;ifor(j=i+1;jif(strcmp(p[i],p[j])<0)
{strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);}
}
main()
{charp[][10]={"abc","aabdfg","abbd","dcdbe","cd"};inti;
f(p,5);printf("%d\n",strlen(p[0]));
}
程序运行后的输出结果是
A)6
B)4
C)5
D)3
你所选择的答案是:
*,正确答案是:
C×
22.以下叙述中正确的是( )。
A)C语言比其他语言高级
B)C语言可以不用编译就能被计算机识别执行
C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
D)C语言出现的最晚,具有其他语言的一切优点
你所选择的答案是:
*,正确答案是:
C×
23.有以下程序段
intm=0,n=0;charc='a';
scanf("%d%c%d",&m,&c,&n);
printf("%d,%c,%d\n",m,c,n);
若从键盘上输入:
10A10<回车>,则输出结果是:
( )。
A)10,A,10
B)10,a,10
C)10,a,0
D)10,A,0
你所选择的答案是:
*,正确答案是:
A×
24.有以下程序
main()
{inti;
for(i=0;i<3;i++)
switch(i)
{case1:
printf("%d",i);
case2:
printf("%d",i);
default:
printf("%d",i);
}
}
执行后输出结果是( )。
A)011122
B)012
C)012020
D)120
你所选择的答案是:
*,正确答案是:
A×
25.有以下程序
main()
{inta=5,b=4,c=3,d=2;
if(a>b>c)
printf("%d\n",d);
elseif((c-1>=d)==1)
printf("%d\n",d+1);
else
printf("%d\n",d+2)
}
执行后输出结果是( )。
A)2
B)3
C)4
D)编译时有错,无结果
你所选择的答案是:
*,正确答案是:
B×
26.阅读以下函数
fun(char*s1,char*s2)
{inti=0;
while(s1[i]==s2[i]&&s2[i]!
='\0')i++;
return(s1[i]==&&s2{i}!
=='\0');
}
此函数的功能是( )。
A)将s2所指字符串赋给s1
B)比较s1和s2所指字符串的大小,若s1比s2的大,函数值为1,否则函数值为0
C)比较s1和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0
D)比较s1和s2所指字符串的长度,若s1比s2的长,函数值为1,否则函数值为0
你所选择的答案是:
*,正确答案是:
C×
27.已定义c为字符型变量,则下列语句中正确的是( )。
A)c='97';
B)c="97";
C)c=97;
D)c="a";
你所选择的答案是:
*,正确答案是:
C×
28.以下不能正确定义二维数组的选项是( )。
A)inta[2][2]={{1},{2}};
B)inta[][2]={1,2,3,4};
C)inta[2][2]={{1},2,3};
D)inta[2][]={{1,2},{3,4}};
你所选择的答案是:
*,正确答案是:
D×
29.以下程序
main()
{intx=3,y=2,z=1;
printf("%d\n",x/y&~z);
}
程序运行后的输出结果是( )。
A)3
B)2
C)1
D)0
你所选择的答案是:
*,正确答案是:
D×
30.
你所选择的答案是:
*,正确答案是:
B×
31.以下4组用户定义标识符中,全部合法的一组是( )。
A)_main
enclude
sin
B)If
-max
turbo
C)txt
REAL
3COM
D) int
k_2
_001
你所选择的答案是:
*,正确答案是:
A×
32.设有以下定义
#defined2
inta=0;
doubleb=1.25;
charc=’A’;
则下面语句中错误的是( )。
A)a++; B)b++ C)c++; D)d++;
你所选择的答案是:
*,正确答案是:
D×
33.以下4个选项中,不能看作一条语句的是( )。
A){;} B)a=0,b=0,c=0; C)if(a>0); D)if(b==0)m=1;n=2;
你所选择的答案是:
*,正确答案是:
D×
34.以下程序段中与语句k=a>b?
(b>c?
1:
0):
0;功能等价的是( )。
A)if((a>B)&&(b>C))k=1;
elsek=0;
B)if((a>B)||(b>C))k=1
elsek=0;
C)if(a<=B)k=0;
elseif(b<=C)k=1;
D)if(a>B)k=1;
elseif(b>C)k=1;
你所选择的答案是:
*,正确答案是:
A×
35.若程序中定义了以下函数
doublemyadd(doublea,doubleB)
{return(a+B);}
并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是( )。
A)doublemyadd(doublea,B);
B)doublemyadd(double,double);
C)doublemyadd(doubleb,doubleA);
D)doublemyadd(doublex,doubley);
你所选择的答案是:
*,正确答案是:
A×
36.有以下程序
main()
{chara='a',b;
print("%c,",++a);
printf("%c\n",b=a++);
}
程序运行后的输出结果是( )。
A)b,b
B)b,c
C)a,b
D)a,c
你所选择的答案是:
*,正确答案是:
A×
37.下列条件语句中,功能与其他语句不同的是( )。
A)if(a)printf("%d\n",x);elseprintf("%d\n",y);
B)if(a==0)printf("%d\n",y);elseprintf("%d\n",x);
C)if(a!
=0)printf("%d\n",x);elseprintf("%d\n",y);
D)if(a==0)printf("%d\n",x);elseprintf("%d\n",y);
你所选择的答案是:
*,正确答案是:
D×
38.有以下程序
main()
{chara,b,c,d;
scanf("%c,%c,%d,%d",&a,&b,&c,&d);
printf("c,%c,%c,%c\n",a,b,c,d);
}
若运行时从键盘上输入:
6,5,65,66<回车>。
则输出结果是( )。
A)6,5,A,B
B)6,5,65,66
C)6,5,6,5
D)6,5,6,6
你所选择的答案是:
*,正确答案是:
A×
39.有以下定义和语句
inta[3][2]={1,2,3,4,5,6,},*p[3];
p[0]=a[1];
则*p[0]+1)所代表的数组元素是( )。
A)a[0][1]
B)a[1][0]
C)a[1][1]
D)a[1][2]
你所选择的答案是:
*,正确答案是:
C×
40.有以下程序
main()
{charstr[][10]={"China","Beijing"},*p=str;
printf("%s\n",p+10);
}
程序运行后的输出结果是( )。
A)China
B)Bejing
C)ng
D)ing
你所选择的答案是:
*,正确答案是:
B×
41.已有定义:
inti,a[10],*p;,则合法的赋值语句是( )。
A)p=100;
B)p=a[5];
C)p=a[2]+2;
D)p=a+2;
你所选择的答案是:
*,正确答案是:
B×
42.设有定义语句:
charc1=92,c2=92;,则以下表达式中值为零的是( )。
A)c1^c2
B)c1&c2
C)~c2
D)c1|c2
你所选择的答案是:
*,正确答案是:
A×
43.有以下程序
voidfun(int*a,inti,intj)
{intt;
if(i {t=a;a=a[j];a[j]=t;
i++;j--;
fun(a,i,j);
}
}
main()
{intx[]={2,6,18},i;
fun(x,0,3);
for(i=0;i<4;i++)printf("%2d",x);
printf("\n");
}
程序运行后的输出结果是( )。
A)1268
B)8621
C)8162
D)8612
你所选择的答案是:
*,正确答案是:
C×
44.有以下说明和定义语句
structstudent
{intage;charnum[8];};
structstudentstu[3]={{20,"200401"},{21,"200402"},{10\9,"200403"}};
structstudent*p=stu;
以下选项中引用结构体变量成员的表达式错误的是( )。
A)(p++)->num
B)p->num
C)(*p).num
D)stu[3].age
你所选择的答案是:
*,正确答案是:
D×
45.以下能正确定义一维数组的选项是( )。
A)inta[5]={0,1,2,3,4,5};
B)chara[]={0,1,2,3,4,5};
C)chara={'A','B','C'};
D)inta[5]="0123";
你所选择的答案是:
*,正确答案是:
B×
46.以下叙述中错误的是( )。
A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
B)数组名代表的是数组所占存储区的首地址,其值不可改变
C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
D)可以通过赋初值的方式确定数组元素的个数
你所选择的答案是:
*,正确答案是:
C×
47.以下语句或语句组中,能正确进行字符串赋值的是( )。
A)char*sp;*sp="right!
";
B)chars[10];s="right!
";
C)chars[10];*s="right!
";
D)char*sp="right!
";
你所选择的答案是:
*,正确答案是:
D×
48.有以下程序
main()
{
inta=1,b;
for(b=1;b<=10;b++)
{
if(a>=8)break;
if(a%2==1){a+=5;continue;}
a-=3;
}
printf("%d",b);
}
程序运行后的输出结果是( )。
A)3
B)4
C)5
D)6
你所选择的答案是:
*,正确答案是:
B×
49.有以下程序
main()
{
intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;
for(i=0;i<4;i++)
{
for(j=1;j<=i;j++)printf("%c",'');
for(j=j<4;j++)printf("%4d",num[i][j]);
printf("");
}
}
若要按以下形式输出数组右上半三角
1234
678
1112
16
则在程序下划线处应填入的是( )。
A)i-1
B)i
C)i+1
D)4-i
你所选择的答案是:
*,正确答案是:
B×
50.有以下程序段
intk=0,a=1,b=2,c=3;
k=ab:
k;
执行该程序段后,k的值是( )。
A)3 B)2 C)1 D)0
你所选择的答案是:
*,正确答案是:
B×
51.若有定义:
int