东北大学秦皇岛c语言考试题7.docx
《东北大学秦皇岛c语言考试题7.docx》由会员分享,可在线阅读,更多相关《东北大学秦皇岛c语言考试题7.docx(28页珍藏版)》请在冰豆网上搜索。
东北大学秦皇岛c语言考试题7
一、选择题答案
1.若a、b、c1、c2、x、y、均是整型变量,正确的switch语句是
A)swich(a+b);B)switch(a*a+b*b)
{case1:
y=a+b;break;{case3:
case0:
y=a-b;break;case1:
y=a+b;break;
}case3:
y=b-a,break;
}
C)switchaD)switch(a-b)
{casec1:
y=a-b;break{default:
y=a*b;break
casec2:
x=a*d;breakcase3:
case4:
x=a+b;break
default:
x=a+b;case10:
case11:
y=a-b;break;
}}
你所选择的答案是:
*,正确答案是:
D×
2.以下程序执行后sum的值是
main()
{inti,sum;
for(i=1;i<6;i++)sum+=i;
printf("%d\n",sum);
}
A)15
B)14
C)不确定
D)0
你所选择的答案是:
*,正确答案是:
C×
3.若变量c为char类型,能正确判断出c为小写字母的表达式是
A)'a'<=c<='z'
B)(c>='a')||(c<='z')
C)('a'<=c)and('z'>=c)
D)(c>='a')&&(c<='z')
你所选择的答案是:
*,正确答案是:
D×
4.以下所列的各函数首部中,正确的是
A)voidplay(var:
Integer,varb:
Integer)
B)voidplay(inta,b)
C)voidplay(inta,intb)
D)Subplay(aasinteger,basinteger)
你所选择的答案是:
*,正确答案是:
C×
5.下列程序的运行结果是
voidfun(int*a,int*b)
{int*k;
k=a;a=b;b=k;
}
main()
{inta=3,b=6,*x=&a,*y=&b;
fun(x,y);
printf("%d%d",a,b);
}
A)63
B)36
C)编译出错
D)00
你所选择的答案是:
*,正确答案是:
B×
6.以下只有在使用时才为该类型变量分配内存的存储类说明是
A)auto和static
B)auto和register
C)register和static
D)extern和register
你所选择的答案是:
*,正确答案是:
B×
7.以下程序的输出结果是
main()
{inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;
for(i=1;i<3;i++)
for(j=0;j<=i;j++)s+=a[i][j];
printf("%dn",s);
}
A)18
B)19
C)20
D)21
你所选择的答案是:
*,正确答案是:
A×
8.以下合法的赋值语句是
A)x=y=100
B)d--;
C)x+y;
D)c=int(a+b);
你所选择的答案是:
*,正确答案是:
B×
9.设正x、y均为整型变量,且x=10y=3,则以下语句的输出结果是
printf("%d,%d\n",x--,--y);
A)10,3
B)9,3
C)9,2
D)10,2
你所选择的答案是:
*,正确答案是:
D×
10.假定w、x、y、z、m均为int型变量,有如下程序段:
w=1;x=2;y=3;z=4;
m=(ww;x;m=(mm;y;m=(mm;z;
则该程序运行后,m的值是it
A)4
B)3
C)2
D)2
你所选择的答案是:
*,正确答案是:
D×
11.设有以下函数:
f(inta)
{intb=0;
staticintc=3;
b++;c++;
return(a+b+c);
}
如果在下面的程序中调用该函数,则输出结果是
main()
{inta=2,i;
for(i=0;i<3;i++)printf("%d\n",f(a));
}
A)7
8
9
B)7
9
11
C)7
10
13
D)7
7
7
你所选择的答案是:
*,正确答案是:
A×
12.假定int类型变量占用两个字节,其有定义:
intx[10]={0,2,4};,则数组x在内存中所占字节数是
A)3
B)6
C)10
D)20
你所选择的答案是:
*,正确答案是:
D×
13.以下程序的输出结果是
main()
{charst[20]="hello\0\t\\\";
printf(%d%d\n",strlen(st),sizeof(st));
}
A)99
B)520
C)1320
D)2020
你所选择的答案是:
*,正确答案是:
B×
14.以下程序段的输出结果是
inta=1234;
printf("%2d\n",a);
A)12
B)34
C)1234
D)提示出错、无结果
你所选择的答案是:
*,正确答案是:
C×
15.以下程序的输出结果是
main()
{charx=040;
printf("%d\n",x<<1);
}
A)100
B)80
C)64
D)32
你所选择的答案是:
*,正确答案是:
C×
16.以下程序的输出结果是
main()
{intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
for(i=0;i<3;i++)
for(j=i;j<=i;j++)t=t+b[i][b[j][j]];
printf("%d\n",t);
}
A)3
B)4
C)1
D)9
你所选择的答案是:
*,正确答案是:
B×
17.若以下定义:
structlink
{intdata;
strucklink*next;
}a,b,c,*p,*q;
且变量a和b之间已有如下图所示的链表结构:
ab
datanextdatanext
┌──┬──┐┌──┬──┐
│5│┼──→│9│\0│
└──┴──┘└──┴──┘
↑p
c
datanext
┌──┬──┐
│7││
└──┴──┘
↑q
指针p指向变量a,q指向变量c。
则能够把c插入到a和b之间并形成新的链表的语句组是:
A)a.next=c;c.next=b;
B)p.next=q;q.next=p.next;
C)p->next=&c;q->next=p->next;
D)(*p).next=q;(*q).next=&b;
你所选择的答案是:
*,正确答案是:
C×
18.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\101'是
A)字符A
B)字符a
C)字符e
D)非法的常量
你所选择的答案是:
*,正确答案是:
A×
19.以下非法的赋值语句是
A)n=(i=2,++i);
B)j++;
C)++(i+1);
D)x=j>0;
你所选择的答案是:
*,正确答案是:
C×
20.设有定义:
longx=-123456L;,则以下能够正确输出变量x值的语句是
A)printf("x=%d\n",x);
B)printf("x=%Ld\n",x);
C)printf("x=%8dL\n",x);
D)printf("x=%LD\n",x);
你所选择的答案是:
*,正确答案是:
B×
21.有以下程序段
intn=0,p;
do{scanf("%d",&p);n++;}while(p!
=12345&&n<3);
此处do-while循环的结束条件是
A)P的值不等于12345并且n的值小于3
B)P的值等于12345并且n的值大于等于3
C)P的值不等于12345或者n的值小于3
D)P的值等于12345或者n的值大于等于3
你所选择的答案是:
*,正确答案是:
D×
22.以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序
voidsort(inta[],intn)
{inti,j,t;
for(i=0;ifor(j=i+1,jif(a[i]}
main()
{intaa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(&aa[3],5);
for(i=o;i<10;i++)print("%d,",aa[i]);
printf('\n");
}
程序运行后的输出结果是
A)1,2,3,4,5,6,7,8,9,10B)10,9,8,7,6,5,4,3,2,1,
C)1,2,3,8,7.6.5.4.9,10D)1,2,10,9,8,7,6,5,4,3
你所选择的答案是:
*,正确答案是:
C×
23.以下叙述中错误的是
A)二进制文件打开后可以先读文件的末尾,而顺序文件不可以
B)在程序结束时,应当用fclose函数关闭已打开的文件
C)在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据
D)不可以用FILE定义指向二进制文件的文件指针
你所选择的答案是:
*,正确答案是:
D×
24.在一个C程序中( )。
A)main函数必须出现在所有函数之前
B)main函数可以在任何地方出现
C)main函数必须出现在所有函数之后
D)main函数必须出现在固定位置
你所选择的答案是:
*,正确答案是:
B×
25.下列关于C语言用户标识符的叙述中正确的是
A)用户标识符中可以出现在下划线和中划线(减号)
B)用户标识符中不可以出现中划线,但可以出现下划线
C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头
D)用户标识符中可以出现在下划线和数字,它们都可以放在用户标识符的开头
你所选择的答案是:
*,正确答案是:
B×
26.有以下程序
main()
{intx[8]={8,7,6,5,0,0},*s;
s=x+3
printf("%d\n",s[2]);
}
执行后输出结果是( )。
A)随机值
B)0
C)5
D)6
你所选择的答案是:
*,正确答案是:
B×
27.有以下程序
main()
{ints=0,a=1,n;
scanf("%d",&n);
do
{s+=1;a=a-2;}
while(a!
=n);
printf("%d\n",s);
}
若要使程序的输出值为2,则应该从键盘给n输入的值是( )。
A)-1
B)-3
C)-5
D)0
你所选择的答案是:
*,正确答案是:
B×
28.以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址
#include
#include
char*scmp(char*s1,char*s2)
{if(strcmp(s1,s2)<0)
return(s1);
elsereturn(s2);
}
main()
{inti;charstring[20],str[3][20];
for(i=0;i<3;i++)gets(str[i]);
strcpy(string,scmp(str[0],str[1]));/*库函数strcpy对字符串进行复制*/
strcpy(string,scmp(string,str[2]));
printf("%s\n",string);
}
若运行时依次输入:
abcd、abba和abc三个字符串,则输出结果为( )。
A)abcd
B)abba
C)abc
D)abca
你所选择的答案是:
*,正确答案是:
B×
29.有以下程序
main()
{
inta[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++)p[i]=i+1;
printf("%d\n",a[1][2]);
}
程序运行后的输出结果是( )。
A)3
B)6
C)9
D)2
你所选择的答案是:
*,正确答案是:
B×
30.以下叙述中正确的是( )。
A)C语言的源程序不必通过编译就可以直接运行
B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C)C源程序经编译形成的二进制代码可以直接运行
D)C语言中的函数不可以单独进行编译
你所选择的答案是:
*,正确答案是:
D×
31.以下符合C语言语法的实型常量是( )。
A)1.2E0.5 B)3.14.159E C).5E-3 D)E15
你所选择的答案是:
*,正确答案是:
C×
32.有以下程序
main()
{
intx=0,y=5,z=3;
while(z-->0&&++x<5)y=y-1;
printf("%d,%d,%d\n",x,y,z);
}
程序执行后的输出结果是( )。
A)3,2,0 B)3,2,-1 C)4,3,-1 D)5,-2,-5
你所选择的答案是:
*,正确答案是:
B×
33.设有定义:
intn=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是( )。
A)p=1; B)*q=2; C)q=p; D)*p=5;
你所选择的答案是:
*,正确答案是:
D×
34.有以下程序
main()
{
char*p[10]={"abc","aabdfg","dcdbe","abbd","cd"};
printf("%d\n",strlen(p[4]));
}
执行后输出结果是( )。
A)2 B)3 C)4 D)5
你所选择的答案是:
*,正确答案是:
A×
35.下面程序的功能是输出以下形式的金字塔图案是:
*
***
*****
*******
main()
{inti,j;
for(i=1;i<=4;i++)
{for(j=1;j<=4-i;j++)printf(““);
for(j=1;j<=_______;j++)printf(“*”);
printf(“\n”);
}
}
在下划线处应填入的是( )。
A)i B)2*i-1 C)2*i+1 D)i+2
你所选择的答案是:
*,正确答案是:
B×
36.有以下程序
voidf(inta[],inti,intj)
{
intt;
if(i{
t=a[i];a[i]=a[j];a[j]=t;
f(a,i+1,j-1);
}
}
main()
{
inti,aa[5]={1,2,3,4,5};
f(aa,0,4);
for(i=0;i<5;i++)printf("%d,",aa[i]);printf("\n");
}
执行后输出结果是( )。
A)5,4,3,2,1, B)5,2,3,4,1, C)1,2,3,5,4, D)1,2,3,4,5,
你所选择的答案是:
*,正确答案是:
A×
37.有以下定义语句
doublea,b;intw;longc;
若各变量已正确赋值,则下列选项中正确的表达式是( )。
A)a=a+b=b++
B)w%(int)a+b)
C)(c+w)%(int)a
D)w=a==b;
你所选择的答案是:
*,正确答案是:
C×
38.有以下程序
main()
{inti;
for(i=0;i<3;i++)
switch(i)
{
case0:
printf("%d",i);
case2:
printf("%d",i);
default:
printf("%d",i);
}
}
程序运行后的输出结果是( )。
A)022111
B)021021
C)000122
D)012
你所选择的答案是:
*,正确答案是:
C×
39.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是( )。
A)abs(x-y)<10
B)x-y>-10&&x-y<10
C)!
(x-y)<-10||!
(y-x)>10
D)(x-y)*(x-y)<100
你所选择的答案是:
*,正确答案是:
C×
40.有以下程序
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×
41.s12和s2已正确定义并分别指向两个字符串。
若要求:
当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是( )。
A)if(s1>s2)S;
B)if(strcmp(s1,s2))S;
C)if(strcmp(s2,s1)>0)S;
D)if(strcmp(s1,s2)>0)S;
你所选择的答案是:
*,正确答案是:
D×
42.有以下定义和语句
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×
43.有如下程序
#include
main()
{FILE*fp1;
fp1=fopen("f1.txt","w");
fprintf(fp1,"abc");
fclose(fp1);
}
若文本文件f1.txt中原有内容为:
good,则运行以上程序后文件f1.txt中的内容为( )。
A)goodabc
B)abcd
C)abc
D)abcgood
你所选择的答案是:
*,正确答案是:
C×
44.有以下程序
#include"stdio.h"
#include"string.h"
main()
{
chara[7]="abcd";inti,j;
i=sizeof(a);j=strlen(a);
printf("%d%d",i,j);
}
程序运行后的输出结果是( )。
A)22
B)74
C)72
D)62
你所选择的答案是:
*,正确答案是:
B×
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.有以下程序
#defineN20
fun(inta[],intn,intm)
{inti,j;
for(i=m;i>=n;i--)
a[i+1]=a[i];
}
main()
{
inti,a[N]={1,2,3,4,5,6,7,8,9,10};
fun(a,2,9);
for(i=0;i<5;i++)
printf("%d",a[i]);
}
程序运行后的输出结果是( )。
A)10234
B)12344
C)12334
D)12234
你所选择的答案是:
*,正确答案是:
C×
47.以下语句或语句组中,能正确进行字符串赋值的是( )。
A)char*sp;*sp="right!
";
B)chars[10];s="right!
";
C)chars[10];*s="right!
";
D)char*sp="right!
";
你所选择的答案是:
*,正确答案是:
D×
48.设有如下说明
typedefstructST
{
longa;
intb;
charc[2];
}NEW;
则下面叙述中正确的是( )。
A)以上的说明形式非法
B)ST是一个结构体类型
C)NEW是一个结构体类型
D)NEW是一个结构体变量
你所选择的答案是:
*,正确答案是:
C×
49.有以下程序
main()
{
chars[]="159",*p;
p=s;
printf("%c",*p++);
printf("%c",*p++);
}
程序运行后的输出结果是( )。
A)15
B)16
C)12
D)59
你所选择的答案是:
*,正确答案是:
A×
50.有以下程序
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×
51.当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是( )。
A)k%2 B)k%2==1 C)(k%2)!
=0 D)!
k%2==1
你所选择的答案是:
*,正确答案是:
D×
52.设有定义:
intk=1,m=2;floatf=7;,则以下选项中错误的表达式是(