级专升本C语言试题.docx

上传人:b****0 文档编号:9331463 上传时间:2023-05-18 格式:DOCX 页数:24 大小:29.50KB
下载 相关 举报
级专升本C语言试题.docx_第1页
第1页 / 共24页
级专升本C语言试题.docx_第2页
第2页 / 共24页
级专升本C语言试题.docx_第3页
第3页 / 共24页
级专升本C语言试题.docx_第4页
第4页 / 共24页
级专升本C语言试题.docx_第5页
第5页 / 共24页
级专升本C语言试题.docx_第6页
第6页 / 共24页
级专升本C语言试题.docx_第7页
第7页 / 共24页
级专升本C语言试题.docx_第8页
第8页 / 共24页
级专升本C语言试题.docx_第9页
第9页 / 共24页
级专升本C语言试题.docx_第10页
第10页 / 共24页
级专升本C语言试题.docx_第11页
第11页 / 共24页
级专升本C语言试题.docx_第12页
第12页 / 共24页
级专升本C语言试题.docx_第13页
第13页 / 共24页
级专升本C语言试题.docx_第14页
第14页 / 共24页
级专升本C语言试题.docx_第15页
第15页 / 共24页
级专升本C语言试题.docx_第16页
第16页 / 共24页
级专升本C语言试题.docx_第17页
第17页 / 共24页
级专升本C语言试题.docx_第18页
第18页 / 共24页
级专升本C语言试题.docx_第19页
第19页 / 共24页
级专升本C语言试题.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

级专升本C语言试题.docx

《级专升本C语言试题.docx》由会员分享,可在线阅读,更多相关《级专升本C语言试题.docx(24页珍藏版)》请在冰点文库上搜索。

级专升本C语言试题.docx

级专升本C语言试题

 

C语言程序设计考试模拟题集

 

第一卷

说明:

(1)第一卷全部为选择题,每题可供选择的答案中,只有一个正确答案。

(2)答本卷的题目时,要在标准答题纸上编号对应的栏目中,用铅笔将正确答案涂黑。

在试题上直接勾划者步得分。

(3)本卷共70分,其中第1~26题每题2分,第27~32每题3分。

第一部分:

基础知识(20题,共40分)

(1)若有定义:

inta=8,b=5,C;,执行语句C=a/b+0.4;后,c的值为。

A)1.4B)1C)2.0D)2

(2)若变量a是int类型,并执行了语句:

a=‘A'+1.6;,则正确的叙述是。

A)a的值是字符C

B)a的值是浮点型

C)不允许字符型和浮点型相加

D)a的值是字符‘A’的ASCII值加上1。

(3)不合法的main函数命令行参数表示形式是。

A)main(inta,char*c[])

B)main(intarc,char**arv)

C)main(intargc,char*argv)

D)main(intargv,char*argc[])

(4)以下选项中不属于C语言的类型的是。

A)signedshortintB)unsignedlongint

C)unsignedintD)longshort

(5)若有说明语句:

inta,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是。

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

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

C)scanf("%d%d%d",a,b,d);

D)scanf("%d%d%d",a,b,*d);

(6)在16位C编译系统上,若定义longa;,则能给a赋40000的正确语句是。

A)a=20000+20000;B)a=4000*10;

C)a=30000+10000;D)a=4000L*10L;

(7)以下叙述正确的是。

A)可以把define和if定义为用户标识符

B)可以把define定义为用户标识符,但不能把if定义为用户标识符

C)可以把if定义为用户标识符,但不能把define定义为用户标识符

D)define和if都不能定义为用户标识符

(8)若定义:

inta=511,*b=&a;,则printf("%d\n",*b);的输出结果为。

A)无确定值B)a的地址C)512D)511

(9)以下程序的输出结果是。

main()

{inta=5,b=4,c=6,d;

printf("%d\n",d=a>b?

(a>c?

a:

c):

(b));

}

A)5B)4C)6D)不确定

(10)以下程序中,while循环的循环次数是。

main()

{inti=0;

while(i<10)

{if(i<1)continue;

if(i==5)break;

i++;

}

}

A)1B)10

C)6D)死循环,不能确定次数

(11)设有以下说明语句

typedefstruct

{intn;

charch[8];

}PER;

则下面叙述中正确的是。

A)PER是结构体变量名B)PER是结构体类型名

C)typedefstruct是结构体类型D)struct是结构体类型名

(12)若有以下程序

#include

voidf(intn);

main()

{voidf(intn);

f(5);

}

voidf(intn)

{printf("%d\n",n);}

则以下叙述中不正确的是。

A)若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f

B)若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数f

C)对于以上程序,编译时系统会提示出错信息:

提示对对f函数重复说明

D)函数f无返回值,所以可用void将其类型定义为无值型

(13)若有以下定义和语句:

ints[4][5],(*ps)[5];

ps=s;

则对s数组元素的正确引用形式是。

A)ps+1B)*(ps+3)C)ps[0][2]D)*(ps+1)+3

(14)在C语言中,形参的缺省存储类是。

A)autoB)registerC)staticD)extern

(15)若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是。

A)p=2*(int*)malloc(sizeof(int));

B)p=(int*)malloc(2*sizeof(int));

C)p=(int*)malloc(2*2);

D)p=(int*)calloc(2,sizeof(int));

(16)在说明语句:

int*f();中,标识符f代表的是。

A)一个用于指向整型数据的指针变量

B)一个用于指向一维数组的行指针

C)一个用于指向函数的指针变量

D)一个返回值为指针型的函数名

(17)若要打开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")

D)fopen("A:

\\user\\abc.txt","w")

(18)以下不能正确进行字符串赋初值的语句是。

A)charstr[5]="good!

";

B)charstr[]="good!

";

C)char*str="good!

";

D)charstr[5]={‘g',‘o',‘o',‘d'};

(19)若有下面的说明和定义:

structtest

{intml;charm2;floatm3;

unionuu{charul[5];intu2[2];}ua;

}myaa;

则sizeof(structtest)的值是。

A)12B)16C)14D)9

(20)若有定义:

intaa[8];。

则以下表达式中不能代表数组元aa[1]的地址的是。

A)&aa[0]+1B)&aa[1]C)&aa[0]++D)aa+1

第二部分:

简单程序(12题,共30分)

(21)以下程序的输出结果是。

main()

{inta=4,b=5,c=0,d;

d=!

a&&!

b||!

c;

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

}

A)1B)0C)非0的数D)-1

(22)以下程序的输出结果是。

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)3B)4C)1D)9

(23)以下程序的输出结果是。

#include

#include

main()

{charb1[8]="abcdefg",b2[8],*pb=b1+3;

while(--pb>=b1)strcpy(b2,pb);

printf("%d\n",strlen(b2));

}

A)8B)3C)1D)7

(24)以下程序的输出结果是。

f(intb[],intm,intn)

{inti,s=0;

for(i=m;i

returns;

}

main()

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

x=f(a,3,7);

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

}

A)10B)18C)8D)15

(25)以下程序的输出结果是。

main()

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

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

}

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

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

main()

{inta=0,i;

for(i=1;i<5;i++)

{switch(i)

{case0:

case3:

a+=2;

case1:

case2:

a+=3;

default:

a+=5;

}

}

printf("%d\n",a);

}

A)31B)13C)10D)20

(27)以下程序的输出结果是。

#include

main()

{inti=0,a=0;

while(i<20)

{for(;;)

{

if((i%10)==0)break;

elsei--;

}

i+=11;

a+=i;

}

printf("%d\n",a);

}

A)21B)32C)33D)11

(28)以下程序的输出结果是。

charcchar(charch)

{

if(ch>=‘A’&&ch<=‘Z')ch=ch-‘A'+‘a';

returnch;

}

main()

{chars[]="ABC+abc=defDEF",*p=s;

while(*p)

{*p=cchar(*p);

p++;

}

printf("%s\n",s);

}

A)abc+ABC=DEFdefB)abc+abc=defdef

C)abcaABCDEFdefD)abcabcdefdef

(29)以下程序的输出结果是。

intf()

{staticinti=0;

ints=1;

s+=i;i++;

returns;

}

main()

{inti,a=0;

for(i=0;i<5;i++)a+=f();

printf("%d\n",a);

}

A)20B)24C)25D)15

(30)以下程序的输出结果是。

unionmyun

{struct

{intx,y,z;}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

(31)下列程序执行后的输出结果是。

voidfunc1(inti);

voidfunc2(inti);

charst[]="hello,friend!

";

voidfunc1(inti)

{printf("%c",st[i]);

if(i<3){i+=2;func2(i);}

}

voidfunc2(inti)

{printf("%c",st[i]);

if(i<3){i+=2;func1(i);}

}

main()

{inti=0;func1(i);printf("\n");}

A)helloB)helC)hloD)hlm

(32)下列程序执行后的输出结果是。

#include

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

floatf(intn)

{

if(n==1)

returna[0];

else

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

}

main()

{

intn=9;

printf(“f(%d)=%f\n”,n+1,f(n));

}

A)14B)15C)16D)13

第二卷

说明:

(1)第二卷含二大题,均属填空题,每题各有5个空栏,在阅读和理解原题程序的基础上,在空栏处填入适当的字符、语句,以构成一个正确的C语言程序。

(2)每空栏填对得3分,两大题10个空栏,全填对得30分。

试题一

下面的程序是求二维数组中的最大值及其所在的行下标并输出。

其中,select函数的功能是:

在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标。

#defineN3

#defineM3

select(inta[N][M],int*n)

{inti,j,row=0,colum=0;

for(i=0;i

for(j=0;①;j++)

if(②){row=i;colum=j;}

*n=③;

return④;

}

main()

{inta[N][M]={9,11,23,6,1,15,9,17,20},max,n;

max=⑤;

printf("max=%d,line=%d\n",max,n);

}

试题二

以下程序的功能是将n个字符按输入顺序的逆序排列。

其中,函数sort实现n个字符的逆置。

sort(char*p,intm)

{

inti;

chartemp,*p1,*p2;

for(i=0;⑥;i++)

{

p1=⑦;

p2=⑧;

temp=*p1;

⑨;

*p2=temp;

}

}

main()

{

inti,n;

char*p,num[20];

printf(“inputn:

”);

scanf(“%d”,&n);

printf(“pleaseinputthesenumbers:

\n”);

for(i=0;i

scanf(“%c”,&num[i]);

p=⑩;

sort(p,n);

printf(“now,thesequenceis:

\n”);

for(i=0;i

printf(“%c”,num[i]);

}

第一卷

说明:

(1)第一卷全部为选择题,每题可供选择的答案中,只有一个正确答案。

(2)答本卷的题目时,要在标准答题纸上编号对应的栏目中,用铅笔将正确答

案涂黑。

在试题上直接勾划者步得分。

(3)本卷共70分,其中第1~26题每题2分,第27~32每题3分。

第一部分:

基础知识(20题,共40分)

(1)以下叙述中正确的是。

A)C语言的源程序不必通过编译就可以直接运行

B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令

C)C源程序经编译形成的二进制代码可以直接运行

D)C语言中的函数不可以单独进行编译

(2)以下选项中不正确的实型常量是。

A)2.6E-1B)0.8324eC)-78.8745D)456e-2

(3)若以下选项中的变量x1、x2、x3、x4已正确定义,则正确的赋值语句是。

A)x1=26.8%3 B)1+2=x2C)x3=0x12D)x4=1+2=3;

(4)有定义语句:

intx,y;,若值11,变量y得到数值12,下面四组输入要通过scanf("%d,%d",&x,&y);语句使变量x得到数形式中,错误的是。

A)1112<回车>B)11,12<回车>

C)11,12<回车>D)11 ,<回车>12<回车>

(5)设有以下定义

int  a=0; 

double b=1.25;

charc=’A’;

#define  d  2

则下面语句中错误的是。

A)a++; B)b++ C)c++; D)d++;

(6)有以下程序

main()

{

 intx=102,y=012;

 printf("%2d,%2d\n",x,y);

执行后输出结果是。

A)10,01      B)002,12     C)102,10     D)02,10

(7)设有如下程序段:

  intx=2002,y=2003;

  printf("%d\n",(x,y));

则以下叙述中正确的是。

A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出

B)运行时产生出错信息

C)输出值为2002 

D)输出值为2003

(8)设有定义:

inta,*pa=&a;以下scanf语句中能正确为变量a读入数据的是()

A)scanf("%d",pa);       B)scanf("%d",a);

C)scanf("%d",&pa);      D)scanf("%d",*pa);

(9)以下程序段中与语句k=a>b?

(b>c?

1:

0):

0;功能等价的是。

A)if((a>b)&&(b>c))k=1;                         B)if((a>b)||(b>c)) k=1

    else k=0;                                      else k=0;

C)if(a<=b) k=0;                                D)if(a>b) k=1;

 elseif(b<=c) k=1;                             elseif(b>c) k=1;

                                                       elsek=0;

(10)有以下程序

main()

{ inti,s=0;

  for(i=1;i<10;i+=2) s+=i+1;

  printf("%d\n",s);

}     

程序执行后的输出结果是。

A)自然数1~9的累加和            B)自然数1~10的累加和

C)自然数1~9中的奇数之和        D)自然数1~10中的偶数之和

(11)若程序中定义了以下函数

   double myadd(doublea,doubleb)

    {return(a+b);}

并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是。

A)doublemyadd(doublea,b);              B)doublemyadd(double,double);

C)doublemyadd(doubleb,doublea);       D)doublemyadd(doublex,doubley);

(12)有以下函数定义 :

   voidfun(intn,doublex){……}

若以下选项中的变量都 已正确定义并赋值,则对函数fun的正确调用语句是。

 A)fun(inty,double m);B)k=fun(10,12.5);

 C)fun(x,n);D)voidfun(n,x);

(13)有以下程序段

inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;

b=p[5];

b中的值是。

A)5    B)6    C)8    D)9

(14)有以下程序

main()

{ chara[]="abcdefg",b[10]="abcdefg";

  printf("%d %d\n",sizeof(a),sizeof(b));

}  

执行后输出结果是。

A)7 7      B)88    C)810     D)1010

(15)有以下定义

#include

chara[10],*b=a;

不能给数组a输入字符串的语句是。

A)gets(a)   B)gets(a[0])   C)gets(&a[0]);   D)gets(b);

(16)下列选项中正确的语句组是

 A)chars[8];s={"Beijing"};B)char*s;s={"Beijing"};

 C)chars[8];s="Beijing";D)char*s;s="Beijing";

(17)设有以下语句

typedefstruct S

{ intg; char h;}  T;

则下面叙述中正确的是。

A)可用S定义结构体变量         B)可以用T定义结构体变量

C)S是struct类型的变量        D)T是struct S类型的变量

(18)有以下程序

main()

{ unsignedchara,b;

  a=4|3;

  b=4&3;

  printf("%d%d\n",a,b) ;

执行后输出结果是。

A)7 0     B}0 7     C)1 1     D)430

(19)若有定义:

int *p[3];,则以下叙述中正确的是。

A)定义了一个基类型为int的指针变量p,该变量具有三个指针

B)定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针

C)定义了一个名为*p的整型数组,该数组含有三个int类型元素 

D)定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素

(20)下列关于C语言数据文件的叙述中正确的是。

A)文件由ASCII码字符序列组成,C 语言只能读写文本文件

B)文件由二进制数据序列组成,C语言只能读写二进制文件

C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件

D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件

第二部分:

简单程序(12题,共30分)

(21)以下程序的输出结果是。

main()

{inta=1,b=2,m=0,n=0,k;

 k=(n=b>a)||(m=a);

  printf("%d,%d\n",k,m);

 )

 A}0,0B)0,1C)1,0 D)1,1

(22)以下程序的输出结果是。

main()

{ inti,n=0;

  for(i=2;i<5;i++)

    { do 

         { if(i%3) continue;

            n++;

         }while(!

i);

        n++;

    }

  printf("n=%

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2