专升本C语言历年试题及答案Word格式文档下载.docx
- 文档编号:21257085
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:17
- 大小:26.34KB
专升本C语言历年试题及答案Word格式文档下载.docx
《专升本C语言历年试题及答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《专升本C语言历年试题及答案Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。
A、0B、1C、6D、无法确定
10.在C程序中,若对函数类型未加说明,则函数的隐含类型为__A___。
A、int
B、doubleC、voidD、char
11.表达式strlen(”hello”)的值是___B____。
A、4B、5C、6D、7
12.设变量定义为“inta[4];
”,则表达式__D____不符合C语言语法。
A、*aB、a[0]C、aD、a++
13.设变量定义为“intx,*p=&
x;
”,则&
*p相当于__A___。
A、pB、*pC、xD、*&
x
14.若变量已正确定义,_A___不能使指针p成为空指针。
A、p=EOFB、p=0C、p=’’D、p=NULL
15.对于以下的变量定义,表达式__D____不符合C语言语法。
structnode{
intlen;
char*pk;
}x={2,"
right"
},*p=&
A、p->
pkB、*p.pkC、*p->
pkD、*x.pk
16.有如下程序
intrunc(inta,intb)
{return(a+b);
}
main0
{intx=2,y=5,z=8,r;
r=func(func(x,y),z);
printf(“%\d\n”,r);
该程序的输出的结果是(D)
A)12B)13C)14D)15
17.对于基类型相同的两个指针变量之间,不能进行的运算是(C)
A)<
B)=C)+D)-
18.有如下程序
longfib(intn)
{if(n>
2)return(fib(n-1)+fib(n-2));
elsereturn
(2);
{printf(“%d\n”,fib(3));
该程序的输出结果是(B)
A}2B}4C}6D}8
19.有如下定义
structperson{charname[9];
intage;
};
strictpersonclass[10]={“Johu”,17,
“Paul”,19
“Mary”,18,
“Adam16,};
根据上述定义,能输出字母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)
A)0B)29C)31D)无定值
fun(intx,inty,intz)
{z=x*x+y*y;
main()
{inta=31;
fun(5,2,a);
printf(“%d”,a);
23.下列程序段的输出结果是(A)
A)2143B)1212C)1234D)2112
voidfun(int*x,int*y)
{printf(“%d%d”,*x,*y);
*x=3;
*y=4;
{intx=1,y=2;
fun(&
y,&
x);
printf(“%d%d”,x,y);
24.当调用函数时,实参是一个数组名,则向函数传送的是(B)
A)数组的长度B)数组的首地址
C)数组每一个元素的地址D)数组每个元素中的值
25.以下程序的输出结果是(A)
A)1B)2C)3D)4
longfun(intn)
{longs;
if(n==1||n==2)s=2;
elses=n-fun(n-1);
returns;
{printf(“%ld\n”,fun(3));
26.以下程序的输出结果是(B)
A)16B)2C)9D)1
#defineSQR(X)X*X
{inta=16,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf(“d\n”,a);
27.以下函数返回a所指数组中最小的值所在的下标值
fun(int*a,intn)
{inti,j=0,p;
p=j;
for(i=j;
i<
N;
I++)
if(a[i]<
A[P])__________;
return(p);
在下划线处应填入的是(D)
A)i=pB)a[p]=a[i]C)p=jD)p=i
二、填空题
1.表示“x≥y≥z”的C表达式是___x>
=y&
&
y>
=z____。
2.下列程序段的输出是__1____。
printf("
%on"
010<
1^1);
3.下列程序段的输出是__6,90____。
intk;
floats;
for(k=0,s=0;
k<
7;
k++)
s+=k/2;
printf("
%d,%fn"
k,s);
4.下列程序段的输出是__5,25_____。
#definef(a,b,x)a*x+b
%d,%dn"
f(3,2,1),f(6,5,f(3,2,1)));
5.下列程序段的输出是_*#*#____。
main()
{intk;
for(k=1;
k<
5;
k++){
if(k%2)printf("
*"
);
elsecontinue;
#"
6.下列程序段的输出是__58___。
#include<
stdio.h>
intf(intx)
{staticy=1;
y++;
x+=y;
returnx;
voidmain()
k=f(3);
%d%dn"
k,f(k));
7.下列程序段的输出是___5__。
int*p,*q,k=5,j=6;
q=&
k;
p=q;
q=&
j;
%d"
*p);
8.函数
voidf(chars[],chart[])
{intk=0;
while(s[k]=t[k])k++;
等价于
voidf(char*s,char*t)
{while(_*s++=*t++____);
9.下列程序段的输出是_ne,s____。
char*a[2]={"
one"
"
two"
},**p=a;
%s,"
*(p++)+1);
%cn"
**p-1);
10.下列程序编译后生成t.exe,运行tinputoutputzoooil的输出结果是__zoo___。
voidmain(intargc,char*argv[])
char*p=argv[1];
for(k=2;
argc;
k++)
if(strcmp(argv[k],p)>
0)p=argv[k];
%sn"
p);
11.下列程序调用swap函数交换a和b的值,并输出交换后的a和b的值。
程序的输出结果是:
Afterswap5,3。
voidmain()
{inta=3,b=5;
swap(&
b);
Afterswap%d,%d"
a,b);
swap(int*p,int*q)
{intt;
t=*p;
;
*p=*q;
*q=t;
专升本C语言历年考试题及答案一、单项选择题
1.
C语言源程序文件经过C编译程序编译连接之后生成一个后缀为__C____的文件。
A、”.c”
B、“.obj”
C、“.exe”
D、“.bas”
2.
以下选项中不正确的整型常量是_C____。
A、12L
B、-10
C、1,900
D、123U
3.
表达式___C___的值是0。
A、3%5
B、3/5.0
C、3/5
D、3<
5
4.
表达式!
(x>
0||y>
0)等价于__D___。
A、!
x>
0||!
y>
0
B、!
0)||!
(y>
0)
C、!
0&
!
D、!
0)&
0)
5.
若变量已正确定义并赋值,表达式__D____不符合C语言语法。
A、4&
3
B、+a
C、a=b=5
D、int(3.14)
6.
若变量已正确定义,执行语句scanf("
%d%d%d"
k1,&
k2,&
k3);
时,___B___是正确的输入。
A、2030,40
B、203040
C、20,3040
D、20,30,40
7.
执行语句printf(”__D____”,
2);
将得到出错信息。
A、%d
B、%o
C、%x
D、%f
8.
设变量定义为“ints[]="
hello\nworld\n"
;
”,则数组s中有__B____个元素。
A、12
B、13
C、14
D、15
9.
设变量定义为“inta[2]={1,3},*p=&
a[0]+1;
”,则*p的值是___B__。
A、2
B、3
C、4
D、&
a[0]+1
10.
若变量已正确定义并赋值,表达式-k++等价于__A____。
A、-(k++)
B、(-k)++
C、-(k+1)
D、-(++k)
11.
在C语言程序中,在函数内部定义的变量称为__D____。
A、全局变量
B、全程变量
C、外部变量
D、内部变量
12.
若x是整型变量,表达式(x=10.0/4.0)的值是__D___。
A、2.5
B、2.0
C、3
D、2
13.
对于以下的变量定义,表达式__A____是正确的。
structnode{
chars[10];
}p[4];
k=2
B、p[0].s=“abc”
C、p[0]->
D、p->
s=‘a’
14.
下列运算符中,优先级从高到低依次为__D___。
A、&
,!
,||
B、||,&
C、&
,||,!
D、!
,&
,||
15.
下列程序段的输出结果是__B___。
int
*p,
*q,
k=1,j=10;
p=&
j;
(*p)++;
*q);
A、1
B、2
C、10
D、11
16.以下各选项企图说明一种新的类型名,其中正确的是水量(C)
A)typedefv1int;
B)typedefv2=int;
C)typedefv1intv3;
D)typedefv4:
int;
17.以下选项中,非法的字符常量是(C)
A)‘\t’B)‘\17’C)“n”D)‘\xaa’
18.以下程序的输出结果是(C)
{inti,a[10];
for(i=9;
i>
=0;
i--)a[i]=10-i;
printf(“%d%d%d”,a[2],a[5],a[8]);
A)258B)741C)852D)369
19.以下程序的输出结果是(B)
{charst[20]=“hello\0\t\\\”;
printf(%d%d\n”,strlen(st),sizeof(st));
A)99B)520C)1320D)2020
20.以下程序的输出结果是(D)
{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)101B)6C)5D)4
21.以下程序的输出结果是(D)
unionmyun
{struct
{intx,y,z;
}u;
}a;
{a.u.x=4;
a.u.y=5;
a.u.z=6;
a.k=0;
printf(%d\n”,a.u.x);
A)4B)5C)6D)0
22.以下程序段的输出结果是(A)
chars[]="
\\141\141abc\t"
printf("
%d\n"
strlen(s));
A)9B)12C)13D)14
23.以下程序的输出结果是(B)
{charch[3][5]={"
AAAA"
"
BBB"
CC"
\"
%s\"
\n"
ch[1]);
A)"
B)"
C)"
BBBCC"
D)"
24.不合法的main函数命令行参数表示形式是(C)
A)main(inta,char*c[])B)main(intarc,char**arv)
C)main(intargc,char*argv)D)main(intargv,char*argc[])
25.有以下程序
{char*s[]={"
three"
},*p;
p=s[1];
%c,%s\n"
*(p+1),s[0]);
执行后输出结果是(C)
A)n,twoB)t,oneC)w,oneD)o,two
26.设有如下说明
typedefstruct
{intn;
charc;
doublex;
}STD;
则以下选项中,能正确定义结构体数组并赋初值的语句是(A)
A)STDtt[2]={{1,'
A'
62},{2,'
B'
75}};
B)STDtt[2]={1,"
A"
62},2,"
B"
75};
C)structtt[2]={{1,'
},{2,'
}};
D)structtt[2]={{1,"
62.5},{2,"
75.0}};
27.若变量c为char类型,则能正确判断出c为小写字母的表达式是(
D
)。
A)'
a'
=c<
='
z'
B)(c>
)||(c<
)
C)('
=c)and('
>
=c)
D)(c>
)&
(c<
二、填空题
1.设ch是字符型变量,判断ch为英文字母的表达式是:
(ch>
=’A’&
ch,=’Z’)||(ch>
=’a’&
ch<
=’z’)__。
计算下列分段函数的if语句是_if(x>
0)y=1;
elseif(x=0)y=0;
elsey=-1;
___。
1
x>
y=
0
x=0
-1
x<
5的值是__1____。
下列程序段的输出结果是___12___。
%xn"
(0x19<
1)&
0x17);
下列程序段的输出结果是__k=4s=6___。
intk,s;
for(k=0,s=0;
10;
if(s>
k)break;
elses+=k;
k=%ds=%d"
下列程序段的输出结果是__15___。
#defineMIN(x,y)
(x)<
(y)?
(x):
(y)
10*MIN(10,15));
下列程序在运行时可能会出错,原因是__指针变量s未赋初值____。
#include
{
char*s;
gets(s);
puts(s);
下列程序段的输出是___6
0__。
#include
intf(intm)
staticintk=0;
ints=0;
for(;
=m;
k++)s++;
returns;
ints1,s2;
s1=f(5);
s2=f(3);
%d%d\n"
s1,s2);
下列程序段的输出结果是__fgh___。
char
*st[]={"
abcd"
efgh"
ijkl"
mnop"
%s"
*(st+1)+1);
用typedef定义一个含10个元素的整型数组ARR。
typedef
int
ARR[10];
11.以下程序调用findmax函数返回数组中的最大值,请填空。
findmax(int*a,intn)
{int*p,*s;
for(p=a,s=a;
p-a
if(
*p>
*s
)s=p;
return(*s);
{intx[5]={12,21,13,6,18};
findmax(x,5));
三、程序(段)填空题
1.设变量x,y,z已正确定义和赋值,请仔细阅读程序段A,然后在程序段B中填入正确的内容,使程序段A和程序段B有相同的功能。
程序段A
程序段B
x=x+y;
y=x-y;
x=x-y;
z=x+y;
z=x
x=y
y=z;
2.请仔细阅读函数f1,然后在函数f2中填入正确的内容,使函数f1和函数f2有相同的功能。
char*f1(chars[],chart[])
for(k=0;
t[k]!
='
'
s[k]=t[k];
s[k]='
一、用C语言描述下列命题(共8小题,每小题3分,计24分)
1..y为int型,满足能同时被3,5整除的表达式。
2.把下列数学表达式转换为C语言表达式。
3.表示CH不是小写英文字母的表达式。
4.条件10<
|a-b|<
20的C语言表达式。
5.x,y和z均为int型,x和y中仅有一个小于z。
6.定义一个数组a[10],其数组元素为指向float的指针。
7.定义一个交通信号灯(Transportation_light)的枚举类型及其变量light。
其中列举的常量有红,黄,绿(red,yellow,green)三色控制灯。
8..写出一个函数f1()的说明部分,函数的返回值为指向int数据的指针。
二、根据要求画出NS图或流程图(共1小题,每小题6分,计6分)
1.有一分数序列:
试求前10项之和。
三、程序阅读题(共4小题,每小题5分,计20分)
1.#include<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 历年试题 答案