专升本C语言历年试题及答案.docx

上传人:b****6 文档编号:8060910 上传时间:2023-01-28 格式:DOCX 页数:19 大小:44.18KB
下载 相关 举报
专升本C语言历年试题及答案.docx_第1页
第1页 / 共19页
专升本C语言历年试题及答案.docx_第2页
第2页 / 共19页
专升本C语言历年试题及答案.docx_第3页
第3页 / 共19页
专升本C语言历年试题及答案.docx_第4页
第4页 / 共19页
专升本C语言历年试题及答案.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

专升本C语言历年试题及答案.docx

《专升本C语言历年试题及答案.docx》由会员分享,可在线阅读,更多相关《专升本C语言历年试题及答案.docx(19页珍藏版)》请在冰豆网上搜索。

专升本C语言历年试题及答案.docx

专升本C语言历年试题及答案

专升本C语言历年考试题及答案一、单项选择题

1.___D___是合法的用户自定义标识符。

 

4.在C程序中,用___B__表示逻辑值“真”。

A、1B、非0的数C、非1的数D、大于0的数

5.

__C把x、y定义成float类型变量,并赋同一初值3.14。

 

C、floatx=3.14,y=x=3.14;D、floatx=y=3.14;

6.假设变量已正确定义,表达式___C___的值不是2。

A、2&3B、1<<1C、a==2D、1A3

7.

B、k=a>b;

假设变量已正确定义,语句“if(a>b)k=0;elsek=1;”和__C等价。

A、k=(a>b)?

1:

0;

C、k=a<=b;

D、a<=b?

0:

1;

8.设变量定义为“inta,b;”,执行以下语句时,输入_D,则a和b的值都是

10。

scanf("a=%d,b=%d",&a,&b);

9.以下程序的输出结果是__D

fun(inta,intb,intc){c=a*b;}

voidmain()

{intc;

fun(2,3,c);

printf(”%dn”,c);}

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=&x;

A、p->pkB、*p.pkC、*p->pkD、*x.pk

16.有如下程序

intrunc(inta,intb)

{return(a+b);}

mainO

{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)

18.有如下程序

longfib(intn)

{if(n>2)return(fib(n-1)+fib(n-2));

elsereturn

(2);

}

main0

{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(“%Ac\n”,class[2].name[0]);

20.以下所列的C语言常量中,错误的选项是(B)

A)OxFFB)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)2112voidfun(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);}

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;}

main()

{printf(“%ld\n”,fun(3));}

26.以下程序的输出结果是(B)

A)16B)2C)9D)1

#defineSQR(X)X*X

main()

{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=O,p;

P=j;

for(i=j;i

if(a[i]

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<<1A1);

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

printf("%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;

printf("#");

}

}

6.以下程序段的输出是__58___

#include

intf(intx)

{staticy=1;

y++;

x+=y;

returnx;

}

voidmain()

{intk;

k=f(3);

printf("%d%dn",k,f(k));

}

7.以下程序段的输出是___5__。

int*p,*q,k=5,j=6;

q=&k;p=q;q=&j;

printf("%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;

printf("%s,",*(p++)+1);

printf("%cn",**p-1);

10.

__zoo___

以下程序编译后生成t.exe,运行tinputoutputzoooil的输出结果是voidmain(intargc,char*argv[])

{intk;

char*p=argv[1];

for(k=2;k

if(strcmp(argv[k],p)>0)p=argv[k];

printf("%sn",p);

11.以下程序调用swap函数交换a和b的值,并输出交换后的a和b的值。

程序的输出结

是:

Afterswap5,3。

voidmain()

{inta=3,b=5;

swap(&a,&b);

printf("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、12LB、-10C、1,900D、123U

3.表达式___C___的值是0。

A3%5B、3/5.0C、3/5D、3<5

4.表达式!

(x>0||y>0)等价于__D___。

!

x>0||!

y>0

B、!

(x>0)||!

(y>0)

C、!

x>0&&!

y>0

D、!

(x>0)&&!

(y>0)

5.

假设变量已正确定义并赋值,表达式

D不符合C语言语法。

4&&3

B、+a

C、a=b=5

D、int(3.14)

6.

假设变量已正确定义,执行语句scanf("%d%d%d",&k1,&k2,&k3);时,

B—是正确的输入。

7.

8.

9.

10.

A、2030,40

B、203040

C、20,3040

D、20,30,40

%d

12

执行语句printf(”__D.

B、%o

2);

%x

将得到岀错信息。

D、%f

设变量定义为“ints[]="hello

n";",则数组s中有__B个元素。

B、13

C、14

D、15

设变量定义为“inta[2]={1,3},*p=&a[0]+1;

”,贝U*p的值是—B.

C、4

D、&a[0]+1

假设变量已正确定义并赋值,表达式-k++

等价于A

A-(k++)

B、(-k)++

C、-(k+1)

D、-(++k)

11.在C语言程序中,在函数内部定义的变量称为

A、全局变量

B、全程变量

C、外部变量

D、内部变量

12.假设x是整型变量,表达式

(x=10.0/4.0)

的值是D

A2.5

B、2.0

13.

对于以下的变量定义,表达式A是正确的。

structnode{

chars[10];

intk;

}p[4];

 

Ap->k=2B、p[O].s=“abc”C、p[0]->k=2D、p->s='a'

14.以下运算符中,优先级从高到低依次为__D—。

A&&,!

,||B、||,&&,!

C、&&||,!

D、!

,&&,||

15.以下程序段的输岀结果是_B—。

int*p,*q,k=1,j=10;

p=&j;q=&k;p=q;(*p)++;

printf("%d",*q);

A1B、2C、10D、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〕

main()

{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〕

main()

{charst[20]=“”;

printf(%d%d\n”,strlen(st),sizeof(st));

}

A)99B)520C)1320D)2020

20.以下程序的输岀结果是〔D〕

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)101B)6C)5D)4

21.以下程序的输出结果是〔D〕

unionmyun

{struct

{intx,y,乙}u;

intk;

}a;

main()

{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)

main()

{charch[3][5]={"AAAA","BBB","CC"};

printf("\"%s\"\n",ch[1]);

}

A)"AAAA"B)"BBB"C)"BBBCC"D)"CC"

24.不合法的main函数命令行参数表示形式是(C)

A)main(inta,char*c[])B)main(intarc,char**arv)

C)main(intargc,char*argv)D)main(intargv,char*argc[])

25.有以下程序

main()

{char*s[]={"one","two","three"},*p;

p=s[1];

printf("%c,%s\n",*(p+1),s[O]);

}

执行后输出结果是(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,'A'},{2,'B'}};

D)structtt[2]={{1,"A",62.5},{2,"B",75.0}};

27.假设变量c为char类型,则能正确判断出c为小写字母的表达式是〔D〕

A)'a'v=c<='z'B)(c>='a')||(c<='z')

C)('a'v=c)and('z'>=c)D)(c>='a')&&(c<='z')

二、填空题

1.设ch是字符型变量,判断ch为英文字母的表达式是:

(ch>='A&&ch,='Z)||(ch>='a'&&ch<=z')_。

2.计算以下分段函数的if语句是_if(x>0)y=1;elseif(x=0)y=0;elsey=-1;

1x>0

y=0x=0

-1x<0

3.表达式!

!

5的值是__1。

4.以下程序段的输岀结果是—12—。

printf("%xn",(0x19<<1)&0x17);

5.以下程序段的输出结果是__k=4s=6_。

intk,s;

for(k=0,s=0;k<10;k++)

if(s>k)break;

elses+=k;

printf("k=%ds=%d",k,s);

6.以下程序段的输岀结果是_15—。

#defineMIN(x,y)(x)<(y)?

(x):

(y)

printf("%d",10*MIN(10,15));

7.以下程序在运行时可能会岀错,原因是_指针变量s未赋初值

#include

voidmain()

{char*s;

gets(s);

puts(s);

}

8.以下程序段的输岀是—60_。

#include

intf(intm)

{staticintk=0;

ints=0;

for(;k<=m;k++)s++;

returns;

}

voidmain()

{ints1,s2;

s1=f(5);

s2=f(3);

printf("%d%d\n",s1,s2);

}

9.以下程序段的输出结果是_fgh—。

char*st[]={"abcd","efgh","ijkl","mnop"};

printf("%s",*(st+1)+1);

10.用typedef定义一个含10个元素的整型数组ARR

typedefintARR[10];

11•以下程序调用findmax函数返回数组中的最大值,请填空。

findmax(int*a,intn)

{int*p,*s;

for(p=a,s=a;p-a

if(*p>*s)s=p;

return(*s);

}

main()

{intx[5]={12,21,13,6,18};

printf("%d\n",findmax(x,5));

}

三、程序(段)填空题

1.设变量x,y,z已正确定义和赋值,请仔细阅读程序段A,然后在程序段E中填入正确的内容,使程序段A和程序段E有相同的功能。

程序段A

程序段B

x=x+y;

y=x-y;

x=x-y;

z=x+y;

z=x;

x=y;

y=z;

z=x+y;

2•请仔细阅读函数fl,然后在函数f2中填入正确的内容,使函数fl和函数f2有相同的功能。

char*f1(chars[],chart[])

{intk;

for(k=0;t[k]!

='';k++)

s[k]=t[k];

s[k]='';

returns;

}

专升本C语言历年考试题及答案

一、用C语言描述以下命题〔共8小题,每题3分,计24分〕

1..y为int型,满足能同时被3,5整除的表达式。

2.把以下数学表达式转换为C语言表达式。

1

11

R2(wL)2

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.有一分数序列:

235813

—?

—?

—?

—?

・・・

12358

试求前10项之和。

三、程序阅读题〔共4小题,每题5分,计20分〕

1.#include

voidmain()

{intx,y;

for(x=1;x<3;x++)

{for(y=1;y<3;y++)

printf("%2d",x*y);

printf("\n");

}

}程序运行后的输出结果为:

2.#include

inta[]={0,1,2,3,4,5,6,7,8,9};

intf(intn)

{if(n==1)returna[0];

elsereturn((n*f(n-1)+a[n])/(n+1));

}

voidmain()

{intn=6;printf("f(%d)=%d",n,f(n));

}程序运行后的输出结果为:

3.#includestructtype{intnum;

intage;

floatwage;

};

voidmain(){structtypeteac;teac.num=105;

teac.age=28;teac.wage=342.5;pr(teac);

}

voidpr(structtypeparm)

{printf("%d,%d,%6.2f\n",parm.num,parm.age,parm.wage);

}程序运行后的输出结果为:

4.#include

charprn_str(char*str,intm,intn)

{inti;for(i=1;i<=m-n;i++)printf("");

for(i=1;i<=n;i++)printf("%c",*str++);printf("\n");

}voidmain(){char*p="Teacher";

prn_str(p,6,4);

}程序运行后的输出结果为:

四、程序填空〔共3小题,每题6分,计18分〕

1.#includevoidmain()

{inta,b,c,i;a=c=0;for(i=0;i<=20;i+=2){a+=i;

c+=b;

}

printf("偶数和=%d\n",a);printf("奇数和=%d\n",);

}

2.#includevoidsort(chara[],intn){int

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 企业管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1