C语言期末考试题目2Word格式.docx
- 文档编号:22760173
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:17
- 大小:21.09KB
C语言期末考试题目2Word格式.docx
《C语言期末考试题目2Word格式.docx》由会员分享,可在线阅读,更多相关《C语言期末考试题目2Word格式.docx(17页珍藏版)》请在冰豆网上搜索。
,"
ShangHai"
TianJin"
},*pa=a;
不能正确显示字符串"
的语句是。
A)printf("
%s"
a+1);
B)printf("
*(a+1));
*a+1);
&
a[1][0]);
8.已知:
inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
int(*ptr)[3]=a,*p=a[0];
则以下能够正确表示数组元素a[1][2]的表达式是。
A)*(*(a+1)+2)B)*(*(p+5))C)(*ptr+1)+2D)*((ptr+1)[2])
9.已知:
inta[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a;
则值为3的表达式是。
A)p+=2,*(p++)B)p+=2,*++pC)p+=2,*p++D)p+=2,++*p
10.已知:
inta[]={1,2,3,4},y,*p=a;
则执行语句y=(*++p)--;
之后,数组a各元素的值变为。
A)0,1,3,4B)1,1,3,4C)1,2,2,4D)1,2,3,3
变量y的值是。
A)1B)2C)3D)4
11.已知:
inta[]={1,3,5,7},y*p=a;
为使变量y的值为3,下列语句正确的是。
A)y=++*p++;
B)y=++(*p++);
C)y=(++*p)++;
D)y=(*++p)++;
12.已知:
intx[]={1,3,5,7,9,11},*ptr=x;
则能够正确引用数组元素的语句是。
A)xB)*(ptr--)C)x[6]D)*(--ptr)
13.函数的功能是交换变量x和y中的值,且通过正确调用返回交换的结果。
能正确执行此功能的函数是。
A)funa(int*x,int*y)B)funb(intx,inty)
{int*p;
{intt;
p=x;
*x=*y;
*y=*p;
t=x;
x=y;
y=t;
}}
C)func(int*x,int*y)D)func(int*x,int*y)
{*x=*y;
*y=*x;
{*x=*x+*y;
*y=*x-*y;
*x=*x-*y;
14.有定义如下:
structsk
{inta;
floatb;
}data,*p;
如果p=&
data;
则对于结构变量data的成员a的正确引用是____。
A)(*).data.aB)(*p).aC)p->
data.aD)p.data.a
15.已知:
structst
{intn;
structst*next;
};
staticstructsta[3]={1,&
a[1],3,&
a[2],5,&
a[0]},*p;
如果下述语句的显示是2,则对p的赋值是。
printf("
++(p->
next->
n));
A)p=&
a[0];
B)p=&
a[1];
C)p=&
a[2];
D)p=&
a[3];
16.已知:
structperson
{charname[10];
intage;
}class[10]={"
LiMing"
29,"
ZhangHong"
21,"
WangFang"
22};
下述表达式中,值为72的一个是。
A)class[0]->
age+class[1]->
age+class[2]->
age
B)class[1].name[5]
C)person[1].name[5]
D)clase->
name[5]
17.已知:
struct
{inti;
charc;
floata;
}test;
则sizeof(test)的值是。
A)4B)5C)6D)7
18.已知:
union
{inti;
19.已知:
unionu_type
charch;
}temp;
现在执行"
temp.i=266;
temp.ch)"
的结果是。
A)266B)256C)10D)1
20.若有以下程序段:
structdent
{intn;
int*m;
inta=1,b=2,c=3;
structdents[3]={{101,&
a},{102,&
b},{103,&
c}};
structdent*p=s;
则以下表达式中值为2的是。
A)(p++)->
mB)*(p++)->
mC)(*p).mD)*(++p)->
m
21.若有以下说明语句,则对结构变量pup中sex域的正确引用是。
structpupil
{charname[20];
intsex;
}pup,*p;
p=&
pup;
A)p.pup.sexB)p->
pup.sexC)(*p).pup.sexD)(*p).sex
22.以下对结构变量stul中成员age的非法引用是。
structstudent
{intage;
intnum;
}stu1,*p;
stu1;
A)stu1.ageB)student.ageC)p->
ageD)(*p).age
23.若有以下定义和语句:
uniondata
floatf;
}a;
intn;
则以下语句正确的是。
A)a=5;
B)a={2,'
a'
1.2};
C)printf("
%d\n"
a);
D)n=a;
24.已知:
{inta;
}date,*p;
如果要使指针p指向data中的成员a,正确的赋值语句是。
A)p=(structsk*)&
data.a;
B)p=(structsk*)data.a;
C)p=&
D)*p=data.a;
25.已知enumweek{sun,mon,tue,wed,thu,fri,sat}day;
A)sun=0;
B)san=day;
C)sun=mon;
D)day=sun;
26.已知enumcolor{red,yellow=2,blue,white,black}ren;
执行下述语句的输出结果是。
ren=white);
A)0B)1C)3D)4
27.已知enumname{zhao=1,qian,sun,li}man;
执行下述程序段后的输出是。
man=0;
switch(man)
{case0:
printf("
People\n"
);
case1:
Man\n"
case2:
Woman\n"
default:
Error\n"
}
A)PeopleB)ManC)WomanD)Error
28.下述关于枚举类型名的定义中,正确的是。
A)enema={one,two,three};
B)enema{one=9,two=-1,three};
C)enema={"
one"
two"
three"
D)enema{"
29.C语言中标准输入文件stdin是指。
A)键盘B)显示器C)鼠标D)硬盘
30.要打开一个已存在的非空文件"
file"
用于修改,选择正确的语句。
A)fp=fopen("
"
r"
B)fp=fopen("
a+"
C)fp=fopen("
w"
D)fp=fopen('
r+"
31.当顺利执行了文件关闭操作时,fclose函数的返回值是。
A)-1B)TRUEC)0D)1
32.fscanf函数的正确调用形式是。
A)fscanf(文件指针,格式字符串,输出列表);
B)fscanf(格式字符串,输出列表,文件指针);
C)fscanf(格式字符串,文件指针,输出列表);
D)fscanf(文件指针,格式字符串,输入列表);
33.使用fgetc函数,则打开文件的方式必须是。
A)只写B)追加C)读或读/写D)参考答案B和C都正确
34.已知宏定义
#defineN3
#defineY(n)((N+1)*n)
执行语句z=2*(N+Y(5+1));
后,变量z的值是。
A)42B)48C)52D)出错
35.已知宏定义#defineSQ(x)x*x,执行语句printf("
10/SQ(3));
后的输出结果是。
A)1B)3C)9D)10
36.下面程序的输出结果是。
voidmain()
{inta[]={1,2,3,4,5,6};
int*p;
p=a;
%d"
*p);
*(++p));
*++p);
*(p--));
p+=3;
%d%d"
*p,*(a+3));
}
A)123354B)123456
C)122345D)123445
37.下面程序的输出结果是。
{inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
int*p=a;
p+=6;
/*①*/
*(*(a+6)));
/*②*/
*(a[1]+=2));
/*③*/
*(&
a[0][0]+6));
/*④*/
A)7777B)②句语法错误C)③句语法错误D)④句语法错误
38.下面程序的输出结果是。
#defineFMT"
%X\n"
#include<
stdio.h>
main()
{staticinta[][4]={1,2,3,4,5,6,7,8,9,10,11,12};
printf(FMT,a[2][2]);
printf(FMT,*(*(a+1)+1));
①A)9B)11C)AD)B
②A)6B)7C)8D)前面三个参考答案均是错误的
39.下面程序的输出结果是。
voidmain()
{inta[]={1,2,3,4,5};
intx,y,*p;
x=*(p+2);
y=*(p+4);
%d,%d,%d\n"
*p,x,y);
A)1,3,5B)1,2,3C)1,2,4D)1,4,5
40.下面程序的输出结果是。
voidive(x,n)
intx[],n;
{intt,*p;
p=x+n-1;
while(x<
p)
{t=*x;
*x++=*p;
*p--=t;
return;
{inti,a[]={1,2,3,4,5,6,7,8,9,0};
ive(a,10);
for(i=0;
i<
10;
i++)
a[i]);
\n"
A)1234567890B)0987654321
C)1357924680D)0864297531
41.下面程序的输出结果是。
#include"
string.h"
fun(char*w,intn)
{chart,*s1,*s2;
s1=w;
s2=w+n-1;
while(s1<
s2)
{t=*s1++;
*s1=*s2--;
*s2=t;
{staticchar*p="
1234567"
fun(p,strlen(p));
p);
A)7654321B)1717171C)7171717D)1711717
42.下面程序的输出结果是。
char*p="
abcdefghijklmnopq"
;
voidmain()
{inti=0;
while(*p++!
='
e'
);
%c\n"
*p);
A)cB)dC)eD)f
43.下面程序的输出结果是。
f(intx,inty)
{return(y-x);
{inta=5,b=6,c;
intf(),(*g)()=f;
(*g)(a,b));
A)1B)2C)3D)前面三个参考答案均是错误的
44.下面程序的输出结果是。
{inta=1,*p,**pp;
pp=&
p;
a++;
printf("
a,*p,**pp);
A)2,1,1B)2,1,2C)2,2,2D)程序有错误
45.下面程序的输出结果是____。
{
char*alpha[7]={"
ABCD"
EFGH"
IJKL"
MNOP"
QRST"
UVWX"
YZ"
char**p;
p=alpha;
4;
%c"
*(p[i]));
A)AEIMB)BFJNC)ABCDD)DHLP
46.以下程序的输出结果是
A)15B)100C)10D)150
#defineMIN(x,y)(x)<
(y)?
(x):
(y)
voidmain()
{inti,j,k;
i=10:
j=15;
k=10*MIN(i,j);
printf(%d\n"
k);
}
47.以下程序的输出结果是
A)11.10B)12.00C)21.10D)1.10
voidfun(float*p1,float*p2,float*s)
{s=(float*)calloc(1,sizeof(float));
*s=*p1+*p2++;
{floata[2]={1.1,2.2},b[2]={10.0,20.0},*s=a;
fun(a,b,s);
printf("
%5.2f\n"
*s);
48.以下程序的输出结果是
A)5,2,3B)-5,-12,-7C)-5,-12,-7D)5,-2,-7
voidsub(intx,inty,int*z)
{*z=y-x;
voidmain()
{inta,b,c;
sub(10,5,&
a);
sub(7,a,&
b);
sub(a,b,&
c);
a,b,c);
二、程序完善题
1.下面程序的功能是实现数组元素中值的逆转。
string.h>
{inti,n=10,a[10]={1,2,3,4,5,6,7,8,9,10};
invert(a,n-1);
%4d"
voidinvert(int*s,intnum)
{int*t,k;
t=s+num;
while(①)
{k=*s;
*s=*t;
*t=k;
②;
③;
2.下面函数的功能是将字符变量的值插入已经按ASCII码值从小到大排好序的字符串中。
voidfun(char*w,charx,int*n)
{inti,p=0;
while(x>
w[p])
①;
for(i=*n;
i>
=p;
i--)
w[p]=x;
++*n;
3.以下程序的功能是:
读入一行字符(如:
a、...y、z),按输入时的逆序建立一个链接式的结点序列,即先输入的位于链表尾(如下图),然后再按输入的相反顺序输出,并释放全部结点。
{structnode
{charinfo;
structnode*link;
}*top,*p;
top=NULL;
while((c=getchar())①)
{p=(structnode*)malloc(sizeof(structnode));
p->
info=c;
link=top;
top=p;
while(top)
{②;
top=top->
link;
putchar(p->
info);
free(p);
三、编程题
1.编写函数,通过指针将一个字符串反向。
2.编写一个函数insert(s1,s2,ch),实现在字符串s1中的指定字符ch位置处插入字符串s2。
3.利用结构:
structcomplx
{intreal;
intim;
编写求两个复数之积的函数cmult,并利用该函数求下列复数之积:
⑴(3+4i)×
(5+6i)⑵(10+20i)×
(30+40i)
4.编写成绩排序程序。
按学生的序号输入学生的成绩,按照分数由高到低的顺序输出学生的名次、该名次的分数、相同名次的人数和学号;
同名次的学号输出在同一行中,一行最多输出10个学号。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 期末考试 题目
![提示](https://static.bdocx.com/images/bang_tan.gif)