大连工业大学历年计算机C语言专升本题目_第1页
大连工业大学历年计算机C语言专升本题目_第2页
大连工业大学历年计算机C语言专升本题目_第3页
大连工业大学历年计算机C语言专升本题目_第4页
大连工业大学历年计算机C语言专升本题目_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

历年计算机C语言专升本题目(-)

(总分100分,考试时长90分钟)

一、单项选择题(每小题2分,共40分)

1、以下标识符中,不能作为合法的C用户定义标识符的是o

A、putchar

double

C、_123

D、INT

2、下面判断正确的是o

A、char*a=〃china〃;等价于char*a;*a=〃china”;

charstr[5]=,,china,/;等价于charstr口=“china”;

C、char*S二〃china〃;等价于char*S;S="china”;

charc[4]-"abc”,d[4]-〃abc〃;等价丁ch"c[4]-d[4]-〃abc〃;

3、c语言对嵌套的if语句的规定是:else总是与配对。

A、与之前最近的述

B、第一个if

C、缩进位置相同的if

D、与之前最近的且尚未配对的if

4、若变量已正确定义,以下while循环正常结束时,累加到pi的最后一项item

的值满足o

A、item的绝对值小于0.0001

B、item的绝对值大于0.0001

C、item的绝对值大于等于0.0001

D、item的绝对值小于等于0.0001

5、设有以下语句:charstrl□="string”,str2[8],*str3,*str4=〃string";则

下列选项中,不是对库函数strepy的正确调用,此库函数用来复制字符串。

A、strepy(str1,“HELLO1〃);

strepy(str2,,,HELL02,/);

C、strepy(str3,,,HELLO3,/);

D、strepy(str4,“HELLO4");

6、设有定义:longx-1234561;则以下能够正确输出变量x值的语句是

__O

A、printf("x二%d\n",x)

printf("x=%ld\n",x)

C、printf((ix=l\n”,x)

D、printf(wx=%D\nw,x);

7、下面程序输出的结果是.

ttinclude<stdio.h>

voidmain()

(

inti,j,x=0;

staticinta[6]={l,2,3,4,5,6);

for(i=0,j=l;i<5;++i,j++)x+=a[i]*a[j];

printfC/%d\n,,>x);

)

A、数组a中首尾的对应元素的乘积

B、数组a中首尾的对应元素的乘积之和

C、数组a中相邻各元素的乘积

D、数组a中相邻各元素的乘积之和

8、调试程序是指对程序进行

A^编辑

B、编译

C、查错和排错

D、连接

9、从键盘上输入某字符串时,不可使用的函数是()。

A、getchar()

B、gets()

C、scanf()

fread()

10、设charstr[100];inti=5;则引用数组元素的错误形式的是

A、str[I+10]

B、*(srr+

C、(str+I-1)

*(&(str++)+

11、有以下程序

main()

(

inta=666,b=888;

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

}

程序运行后的输出结果是O

A、错误信息

B、666

C、888

D、666,888

12、算法具有五个特性,以下选项中不属于算法特性的是o

A、有穷性

B、简洁性

C、可行性

D、确定性

13设有数组定义:chararray□:"china”;则数组array所占的空间为

A、6字节

B、5字节

C、4字节

D、7字节

14、设有如下定义:

structsk

(

intn;

floatx;

}data,*p;

若要使p指向data中的n域,正确的赋值语句是________。

A、p=&datn;

*p=datn;

C、p=(structsk*)&datn;

D、p=(structsk*)datn;

15、已知字母a的ascii码为65,以下程序运行后的输出结果是

#include<stdio.h>

main()

(

charcl,c2;

cl=a'+'8'-'4>;

c2='a'+'8'5';

printf(z,%c,%d\n,\cl,c2);

}

A、E,68

B、D,69

C、E,D

D、输出无定值

16、有如下程序

#includedstdio.h>

voidmain()

(

inti,sum=0;

for(i=l;i<=3;sum++)sum+=i;

printf(〃/d\n〃,sum);

)

该程序的执行结果是.

A、6

B、3

C、死循环

D、0

17、以下选项中,能定义m为合法的结构体变量的是______。

A^typedefstructabc{

doublea;charb;}m;

B、struct(

doublea;charb;)m;

C^structABC{

doublea:charb;}ABCm;

D、typedefABC{

doublea;charb;)ABCm;

18、下面程序的输出结果是。

main()

(

externinta;

ai=3;

f();

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

)

inta=2;

voidf()

(

printf(〃%d&〃,a*a);

a+=a;

)

A、2510

B、25&25

C、10&25

D、25&10

19、以下叙述中错误的是o

A、对于double类型数组,不可以直接用数组名对数组进行整体输入或输出

B、数组名代表的是数组所占存储区的首地址,其值不可改变

C、当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出

“下标越界”的出错信息

D、可以通过赋初值的方式确定数组元素的个数

20、有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量bo

则不能把结点b连接到结点a之后的语句是o

structnode

(

chardata;

structnode*next;

a,b,*p=&a,*q=&b;

A、3475

B、3574

C、1234

D>1235

二、填空题(每小题2分,共20分)

1、在c语言中,关系运算符中的〃等于〃表示为。

2、以下程序的输出结果是_______。

main()

(

intx=5,y=6;

printf(〃/da%d〃,x---,----y);

)

3、若有"inta[3][2]={{1,2},{3},{4,5});

〃,则a[2][2]的值是o

4、若有定义:inta=5,b=2,c=l;则表达式a-bVc|b二二c的值是。

5、c语言三个循环语句分别while语句、语句和语句。

6、下列程序的功能是计算圆的面积,将程序补充完整。

ttdefinePI=3.14159

main()

(

floatr,s;

printfC'Enteranumberr:〃);

s=PI*r*r;

}

7、在c语言中,按函数在程序中出现的位置可分为以下三种调用方式:函数语句、

函数表达式和函数0

8、若有〃inta[3][2]={{l,2},{3},{4,5}};〃,则的值是。

9、有以下程序

#include<stdio.h>

mainO{

intn[2],i,j;

for(i=0;i<2;i++)n[i]=O;

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

for(j=0;j<2;j++)n[j]=n[i]+l;

printf(〃%d\n〃,n[l]);

}程序运行后的输出结果是。

10、mystrlcn函数的功能是计算str所指字符串的长度,并作为函数值返回。请

填空。intmystrlen(char*str)

{

inti;

for(i=0;!='\0';i++);

return();

}

三、编程题(每小题分,共40分)

1、编写程序:输出200〜300之间的所有素数,要求每行输出8个素数。

(本题10分)

2、任意输入两行字符串,把第二行字符串连接到第一行字符串末尾(不用strcat

函数)。(本题14分)

3、通过函数调用实现:讲结构体数组中的三个元素按num成员进行升序排列。

要求:

①数组元素依次赋初值为:{12,"sunny”,89.1}[8,"henry",73.5}、

{21,〃lucy”,9L7}。

②结构体定义如下:structs{intnum;charname[30];floatscore;};(本题

16分)

参考答案

一、单项选择题

1、A

2、C

【解析】选项A)char*a;*a="china”应改为a二china;,选项B)应该是

charstr[6];D)项表述方法有错误。

3、D

4、A

5、C

6、B

7、D

8、C

9、A

10、D

11、B

【解析】本题考查的是输出格式。printfO函数中,当格式转换说明符个数少

于输出项个数时,多余的输出项不予输出。

12、B

【解析】本题考/的是算法的特性。有穷性、确定性、有零个或多个输入、有

一个或多个输出、有效性是算法的五大特性。

13、A

【解析】在本题的定义方式中,系统会自动在数组最后加入一个‘\0',表示字

符数组的结束,因此数组的长度是6个字节。

14、C

【解析】本题主要考查了结构体变量引用成员数据的方法,主要有以下几种:

结构体变量名,成员名或结构体指针成员名的方法来引用结构体成员。

15、A

【解析】cl='A'+'8'-'4'='A'+'4'='E',c2='A'+'8'-'5'='A'+'3'='D'(ASCII

码为68),所以程序运行结果为E,68。

16、C

17、B

18、D

19、C

20、B

【解析】在被调用过程中,有这样的语句“StaticSum”,因为变量Sum是局

部变量,局部变量除了可以用Dim语句声明外,还可用Static语句将变量声明

为静态变量,它在程序运行过程中可保留变量的值,这就是说每次调用过程

时,用Static说明的变量保持原来的值。具体过程分析如下:调用P(l),

所以在被调过程中N=L执行ForNext循环,P(l)=Sum=l;调用P(2),所以

在被调过程中N=2,执行ForNext循环,P(2)=Sum=4;调用P(3),所以在被

调过程中N=3,执行ForNext循环,P(3)=Sum=10;调用P(4),所以在被调过

程中N=4,执行ForNext循环,P(4)=Sum=20;不难看出,最后输出的结臭S

值应为1+4+10+20=35,所以选项C)正确。

二、填空题

1、==

2、5a5

3、无#不存在

4、0

5、['do-while语句','for语句']

6、['scanf&r)','printf(〃s=%f〃,s)']

7、参数

8、0

9、3

10^「*(str+i)str[i]','i']

三、编程题

1、^include<stdio.h>

#include<math.h>

main()

intm,j,n=0,k;

for(m=200;m<=300;m++)

k=sqrt(m);

for(尸2;jV=k;j++)

/**********x*foiind************/

if(m%j-0)continue;

if(j>k)

(

if(n%8==0)printf(〃\n〃);

/******x*****fcund************/

printf("%d,”,m);

n++;

}

}

)

2、^include<stdio.h>

#include<string.h>

intmain()

(

charsi[80],s2[80];

inti,11,12,j;

gels(sl);

gets(s2);

ll=strlen(si);

12=strlen(s2);

for(i=ll,j=0;j<12;i++,j++){

sl[i]=s2[j]:

puts(sl);

return0;

)

3、写法1:在函数外部定义结构体变量并且赋值,参数值为空。

charname[30];

floatscore;

}a[3]={{12,“sunny”,89.1},{8,“henry”,73.5},{21,〃lucy〃,91.7}};

voidfun()

(

inti,j;

struct,st:

for(i=0;i<2;i-+)

(

for(j=0;j<2-i;j++)

(

if(a[j].num>a[j+l].num)

(

t=a[j];

a[j]=a[j+l];

a[j-l]=t;

}

}

)

)

intmain()

(

inti;

fun();

for(i=0;i<3;i-+)

printf(,z%d,%s,%f\n,,>a[i].num,a[i].name,a[i].score);

}

return0;

)

8,henry,73.500000

12,sunny,89.099998

21,lucy,91.699997

写法2:在主函数中定义变量,通过参数传递变量值

charname[30];

fIoatscore;

};

voidfun(structs*a,intn)

(

inti,j;

structst;

for(i=0;i<n-l;i++)

(

for(j=0;j<n-l-i;j++)

(

if(a[j].num>a[j+l].num)

(

l=a[j];

a[j]=a[j+l];

=t;

)

)

intmainO

structsa[3]={{12,"sunny",89.1),(8,"henry",73.5),

{21,〃lucy〃,91.7}};

inti;

fun(a,3);

for(i=0;i<3;i-+)

(

printf("%d,%s,%f\n”,a[i].num,a[i].name,a[i].score);

}

rpturn0;

)

8,henry,73.500000

12,sunny,89.099998

21,lucy,91.699997

历年计算机C语言专升本题目(二)

(总分100分,考试时长90分钟)

一、单项选择题(每小题2分,共40分)

1、编写c语言程序并上机调试运行的一般过程是_______。

限编辑f编译f连接--运行

B、编译编辑一连接一运行

C、编辑一连接一编译一运行

D、编译一连接一编辑一运行

2、表达式X&&1等价于________o

A、x==0

B、x==1

C、x!=0

D.x!=1

3、与〃尸(x>0?l:xV0?T:0)〃;的功能相同的if语句是o

A、if(x>0)y=l;

if(x)

elseif(x>0)y=l;

elsey=0;elseif(x%0)y=-l;

elsey=0;

C、y=-l

D、y=0;

if(x)if(x>=0)

if(x>0)y=l;if(xi>=0)y=l;

elseif(x-0)y=0;elsey=-l;

elsey=-l;

4、结构化程序所要求的基本结构不包括()。

A、顺序结构

B、GOTO跳转

C、选择(分支)结构

D、重复(循环)结构

5、若已定义:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0WiW9,则

对a数组元素不正确的引用是________o

A^a[p-a]

B、*(&

C、p

D、a[10]

6、下列语句合法的是。

A、4+c=b=0;

a=++c;

C、a=2=b=6;

D^a=4++;

7、已知有数组定义chara[3][4];下列表达式中错误的是________。

A、a[2]=〃WIN〃

B、strcpy(a[2],Z,WIN,Z)

C、a[2][3]='W'

D、a[O][l]=a[O][l]

8、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是

A、-3

B、9

C、-12

D、6

9、判断两个字符串是否相等,正确的表达方式是_______o

A、while(sl==s2)

B、while(sl=s2)

C>while(strcmp(sl,s2)==0)

D、while(strcmp(si,s2)=0)

10、若有定义:inta[3][4];不能表示数组元素a[l][l]«

A、*(a[l]+l)

B、*(&a⑴⑴)

C、(*(a+l)[l])

Ds*(a+5)

11、有以下函数定义:

voidfun(intn,doublex)

)

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

A、fun(inty,doublem);

B、k=fun(10,12.5);

C、fun(x,n):

D^voidfun(n,x);

12、若变量均已正确定义并赋值,以下合法的c语言赋值语句是o

A、x=n/2.5;

B、x==5;

C、x+n=I;

D>5=x=4+l;

13、若要用下面的程序片段使指针变量p指向一个存储整型变量的动态存储单元

int*pp二___malloc(sizeof(int));则应填入

A、int

int*

C、(*int)

D^(int*)

14、下面赋值表达式不正确的是.

structstudent

(

longnum;

charnameL20];

}stl,*p=&stl,st2={101,〃tom〃};

A、stl=st2

p->name=st2.name

C、p->num=st2.num

D、*p=st2

15、若有定义:inta,b,c;以下程序段的输出结果是a=ll;b=3;c=0;

printf(z/%d\nz,,c=(a/b,a%b));

A、2

B、0

C、3

D、1

16、判断关键字*不是关键字。

A、int

B、extern

C、break

main

17、设有以下语句:

typedefstructtt{charc;inta[4];}cin;则下面叙述中正确的是

__o

A、可以用TT定义结构体变量

B、TT是struct类型的变量

C、可以用CIN定义结构体变量

D、CIN是structTT类型的变量

18x以下程序的输出结果是。charstr[15]=〃hello!〃;

printfstrlen(str));

A、15

B、14

C、7

D、6

19、下列程序的运行结果是_____o

main()

inta[6],i;

for(i=2;i<6;i+-)

a[i]=4*(i-2^(i>3))%5;

printf("%2d",a[i]);

)

}

A>2323

B、1212

C、3232

D>2222

20、下列程序的输出结果是________。

^include<stdio.h>

structabc

(

inta,b,c,s;

};

main()

(

structabcs[2]={{1,2,3},{4,5,6}};

intt;

t=sLOj.a+s[l].b;

printf(〃%d\n〃,t);

)

A、5

B、6

C、7

D、8

二、填空题(每小题2分,共20分)

1、在c语言中,用转义字符表示。答题提示:双引号/单引号

/反斜线/横向跳格/回车换行

2、在vc++编译环境下,c语言基本整型变量所占字节数是一o

3、c语言规定,不能使用c语言中的_______做标识符。

4、C语言中,关系表达式和逻辑表达式的值是0

5、c语言程序的三种基本结构是顺序结构、选择结构和。

6、设有以下程序:

main()

{

intnl,n2;

scanf(〃%d〃,&n2):

while(n2!=0)

(

nl=n2;

n2=n2/10;

printf(z/%d”,nl);

}

)

程序运行后,如果从键盘上输入1298;

则输出结果为________0

7、在定义函数时函数名后面括号中的变量名称为o

8、若有说明:inta口⑶={{1,2,3},{4,5},{6,7}};则数组a的第一维的大小

为o

9、以下程序运行结果是o

^include<stdio.h>

voidmain()

(

intx,y=l;

if(y!=0)x=5;

,x);

if(y==0)x=4;

elsex=5;

printf(,,\t%d\n,/,x);

x=l;

if(y<0)if(y>0)x=4;

elsex=5;

printf(〃\t%d\n”,x);

}

10、语句putcharCa'+2);的输出结果是。

三、编程题(每小题分,共40分)

1、己知a,b,c都是1位整数,求当三位整数abc、cba的和为1333时a、b、

c的值。(本题10分)

2、输入一个字符串和一个特定字符,在字符串中删除从该特定字符开始的所有

字符。例如输入字符串为〃abcdefg”,特定字符为'd',删除后的字符串为〃abc〃;

输入字符串为〃abcdefg〃,特定字符为'x',则输出“特定字符不存在”。(本

题14分)

3、题目描述

万里十佳歌手比赛终于开始了,评委席坐了N(N大于等于3,并且N小于80)个

评委,他们商量了很久,终于找出一个公正合理的评分方法。每次歌手唱完后,

每个评委自己打一个分,然后在N个评委的打分中,去掉一个最高分,一个最低

分。然后再把剩下的评委的打分求平均值~。

但是问题是他们嫌每次拿计算器按实在太烦。作为一名计算机专业学生、你用个

程序帮帮他们搞定吧。

输入

输入有*多组数据。每组2行,第一行是一个N,代表有N个评委。然后第二行有

N个数,每个数用空格隔开,代表每个评委的打分。

当输入的N为0的时候结束输入。

输出

对于每组输入,输入最终这个选手的得分(小数点后面保留2位有效数字)。

样例输入

3

743634

7

16972726749688

样例输出

36.00

62.20(本题16分)

参考答案

一、单项选择题

1、A

2、C

3、B

4、B

5、D

【解析】通常,引用一个数组元素可以用下标法,如s[p-a]和p[i]的形式;或

指针法,如*(&a[i])的形式。在本题中如0]=0,a[9]=9,显然a[10]超出了数

组范围。

6、B

7、A

【解析】本题考查数组的基本知识,B、C、D在C语言中都是允许的,A选项的

赋值是非法的。

8、C

9、C

10、D

11、C

12、A

13、D

【解析】不论P是指向什么类型的指针变量,都可以通过强制类型转换的方法

使之类型一致,强制类型转换的格式为(数据类型*)。

14、B

15、A

16、C

17、C

【解析】将题目中的定义语句去掉前面的typedef和后面的CIN(分号保留),

就是一条完整的结构体定义语句,其中struct是说明符,TT是结构体名,大

括号里面的是结构体成员的定义。此时要声明该结构体变量时需要使用struct

加结构体名一起来声明,structTT一起构成一人结构体类型,就好像字符类

型char。若只去掉前面的typedef,就是一条结构体定义同时声明个结构体变量

CIN的语句,因为CIN的前面部分是structTT的完整写法,可以看作是

structTToC语言允许用typedef说明一种新类型名,其语法格式为:

typedef类型名标设符;

以后就可以用该标识符来代替被说明的类型名了。因此,当前面存在

typedef时,该语句就变成了给structTT的定义一个新的名称CTN。所以,此

时的CIN是一个结构体类型,它相当于structTT,即可以和char一样单独用

来声明该结构体变量,而TT只是一个结构体名,不能单独用来声明变量。所

以,4个选项中C符合题意。

18、D

19、C

【解析】本题程序的功能是对数组元素赋值,难点是对表达式4*(i-2*(i>

3))%5的分析。

20、B

【解析】在本题中,s[0].a=l,s[l].b=5,所以输出结果为中

二、填空题

1、单引号

2、4

3、关键字

4、0或1

5、['循环结构']

6、8921

7、形参

8、3

9、5|5,1

【解析】上程序中第三个if语句有嵌套,前两个if语句没有嵌套。前两个if

语句根据y=l便可得知输出结果均为5;最后一人if语句,根据条件yVO便

知不成立,后续语句无法执行,只好输出前一赋值语句x=l的值。

10、结果是c

三、编程题

1、^include

voidmain()

(

inta,b,c;

for(a=l;a<=9;a+-)

(

for(b=0;b<=9;b++)

{

for(c=l:c<=9;c++)

if(a*100+b*10+c+c*100+b*10+a==-333)

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

)

)

}

2、#include<stdio.h>

intmain()

(

inti,flag=0;

chars[80],n;

gets(s);

scanf&n);

printf("特定字符是机\n〃,u);

for(i=0;s[i]!='\0';i++){

if(s[i]==n){

s[i]-\0J;

flag=l;

printf("删除特定字符枇后的字符串是〃,n);

puts(s);

break;

}else

flag=O;

}

if(flag==O){

printf(〃特定字符不存在〃);

)

)

3、#include<stdio.h>

intmain(){

intt,n,i,max,nin,sum:

intscore[102]=(O);

while(scanf(z/%dx,&n)){

if(n==0)break;

for(i=0;i<n;++i)

scanf(〃%d〃,&score[i]);

max=-l;

min=101;

sum=0;

for(i=0;i<n;++i){

if(score[i]>max)

max=score[i];

if(score[i]<min)

min=score[i];

sum+=score[i];

}

sum一二max-min;

printf(,z%.21f\n,/,(double)sum/(n-2));

)

returnO;

历年计算机C语言专升本题目(三)

(总分100分,考试时长90分钟)

一、单项选择题(每小题2分,共40分)

1、如果要求在if后的判断条件是a不等于0,则下列选项中能正确表达这一关

系的是o

A、a<>0

B、!a

C、a=0

D、a

2、若fahr为整型变量,则能正确表示以下数学式的c语言表达式是o

A、5*(fahr-32)/9

B、5/9*(fahr-32)

C、5(fahr-32)/9

D、(fahr-32)/9*5

3、有以下程序

main()

(

inti=l,j=l,k=2;

if((j++IIk++)&&i++)

printf("%d,%d,%d\n”,i,j,k);

)

执行后输出结果是o

A、1,1,2

B、2,2,1

C、2,2,2

D、2,2,3

4、下面程序段的输出结果是.

x=3;

do

(

y二x一;

if(!y)

(

printf(〃*〃);

continue;

)

printf(〃#〃);

)

while(x=2);

A、##

B、##*

C、死循环

D、输出错误信息

5、在函数调用过程中,如果函数funa调用了函数funb,函数funb又调用了函数

funa,贝1o

A、称为函数的直接递归调用

B,称为函数的间接递归调用

C、称为函数的循环调用

D、C语言中不允许这样的递归调用

6、若有代数式|x3+lgx],则正确的c语言表达式是o

A、fabs(x*3+log10(x))

abs(pow(x,3)+loglO(x))

C>abs(pow(x,3)0)+logl0(x))

fabs(pow(x,3)0)+log10(x))

7、若有以下定义和语句:inta[10]={l,2,3,4,5,6,7,8,9,10},*ia=a;则不能

正确表示a数组元素的表达式是o

A、*ia

B、a[10]

C^*a

a[ia-a]

8、若已定义x和y是整型变量,x=2;,则表达式y=2.75+x/2的值是。

A、5.5

B、5

C、3

D、4.0

9、字符串〃xyz〃在内存占用的字节数是o

A、3

B、4

C、6

D、8

10、以下数组定义中不正确的是.

A、inta[2][3];

B、intb[][3]={0,1,2,3};

C、intc[100][100]={0};

D、inta[3][]={{l,2},{1,2,3},{1,2,3,4));

11、以下关于宏的叙述中正确的是o

A、宏名必须用大写字母表示

B、宏定义必须位于源程序中所有语句之前

C、宏替换没有数据类型限制

D、宏调用比函数调用耗费时间

12、整型变量x和y的值相等,且为非0值,则以下选项中结果为0的表达式是

A、X||Y

B、X|Y

C、X&Y

D、X"

13、下面关于形参与实参的说法,正确的是o

A、形参与实参的人数、类型、顺序都应一一对应

B、形参与实参的人数可以不必相同,少一个多一个程序一样执行

C、形参与实参的类型可以不同,不影响运算结果

D、形参与实参的类型个数相同,而顺序不同,计算机可以自动进行匹配,所

以形参的顺序无所谓,只要各种形参类型的数量与实参相同即可

14、有以下程序

structstu

(

charnum[10];

floatscore[3];

};

main()

(

structstu

s[3]={{"20021〃,90,95,85},{〃20022〃,95,80,75),{"20023",100,95,90)},2;

inti;

floatsum=0;

P=s+2;

for(i=0;i<3;i+-)sum=sum+p->score[i];

printfC'%6.2f\n”,sum);

)

程序运行后的输出结果是O

A、250.00

B、250

C、285.00

D、285

15、有以下程序

#include<stdio.h>

main()

(

intx=l,y=0;

if(!x)y++;

elseif(x—0)if(x)y+=2;

elsey+=3;

printfC%d\n',y);

程序运行后的输出结果是一。

A、0

B、2

C、1

D、3

16、下列叙述中正确的是________o

A^break语句只能用于switch语句体中

B、continue语句的作用是使程序的执行流程跳出包含它的所有循环

C、break语句只能用在循环体内和switch语句体内

D、在循环体内使月break语句和continue语句的作用相同

17、程序中有下面的说明和定义

structabc

(

intx;

chary;

)

structabcsi,s2;

则会发生的情况是。

A、编译出错

B、程序将顺利编译、连接、执行

C、能顺利通过编译、连接、但不能执行

D、能顺利通过编译、但连接出错

18、下面程序段的输出结果是o

#include<stdio.h>

mainO

(

floatx=l.236547;

printf("%f\n〃,(int)(x*1000+0.5)/(float;1000);

)

A、1.237000

B、输出格式说明与输出项不匹配,输出无定值

C、1.236000

D、1.24

19、以下能正确定义数组并正确赋初值的选项是______。

A、intN=5,a[N][N];

B.intb[l][2]={{l},{2});

C、intc[2][]={{1,2},{3,4}};

D、intd[3][2]={{1,2),(3,4}};

20、设有以下说明语句

typedefstruct

intn;

charch[8];

)

per;

则下面叙述中正确的是o

A、PER是结构体变量名

B、PER是结构体类型名

C、typedefstruct是结构体类型

struct是结构体类型名

二、填空题(每小题2分,共20分)

1、全局的外部变量与函数体内定义的局部变量同名时,在函数体内,变

量起作用。

2、实型常量有两种表示方法:小数形式和【1】形式。

3、inta=0;a+=(a=8);求a的最后结果

4^已知b=2,则表达式〃b+二b-=3〃的值是o

5、语句只能用在循环中,该语句的作用是结束本层本次循环,继续一下次循环,前

不跳出循环。

6、下列程序段的运行结果是____o

#definesub(x,y)x-y

main()

inta,b,s;

A=5,b=6;

S=sub(a,b);

printf(//s=%d\n/,,s);

}

7、一个C程序有且仅有一个______函数。

8、数组inta[3][3];共定义了个数组元素。

9、a=3;

a+=(a<l)?a:1;

printf(〃/d〃,a);

结果是o

10、请阅读下面的程序,当用户从键盘输入helloworld时,分析程序是否能编绎

通过并正确运行,如果不能,说明原因;

如果能,请写出运行结果。

voidmain()

(

charstr[256];

scanf();

printf();

)

hallo

三、编程题(每小题分,共40分)

1、输入3个学生4门课的成绩{(60,70,65,75),(75,80,75,90),(95,75,90,65)},

计算每个学生的总分和平均成绩并输出,结果保留一位小数。(本题10分)

2、编写程序:字符串反转,如将字符串"abc-123-xyz"反转为〃zyx-321-cba〃。

(本题14分)

3、编写程序:使用结构体,创建一个长度为n的链表。(本题16分)

参考答案

一、单项选择题

1、D

【解析】if判断条件的值只能是0或非0,if3)就是if(!0)的意思。

2、A

3、C

【解析】首先计算if语句后面的表达式值,先计算运算符&&前面括号里的

“I”运算。在“I”运算中先计算j++,值为:(j的值为2),为真,后面的

k++将不再计算,k的值依旧为2。计算&&后面的表达式i++,值为l(i的值变

为2)。整个表达式的值为真,所以执行后面的输出语句,最后输出的i、j和k

的值为2、2和2。

4、C

5、B

【解析】在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为

函数的递归调用。本题描述的函数调用属于函数的间接递归调用。

6、D

7、B

8、C

9、B

【解析】字符串中的每个字符占1个字节,但C程序在存储字符串时,要在最

后一个有效字符后面接上1个字符串结束的标记符'\0'。这样,存储字符串常

量”XyZ”需要4个字节。所以解答是B。

10、D

11、C

12、D

【解析】“II”为或运算符,当其左右表达式中只要一个为非零则整个表达式

的值1。I是按位或,&是按位与,”是按位异或,这三位运算符是按值的二进

制位来比较的。

13、A

【解析】形参、实参个数类型、数量、顺序应相同,因为类型转换都是有条件

的,如果浮点型变量向指针型变量转换就是不可的。

14、C

15、A

【解析】Qx)为假,然后判断(x=0),为假,最后就执行输出语句,y的值仍

为初始值,答案选择A。

16、C

17、A

18、A

【解析】本题中,(int)(x*1000+中5)的结果为1237,(float)1000是将1000

强制转换成float类型;整个表达式(int)(x*1000+0.5)/(float)1000的结果

为L237000,再以实数(6位小数)形式输出.

19、D

【解析】数组维数必须为常量;数组为一行两列,而两行一列;数组

定义错误,数组定义时列数必须写明,而行数可以缺省;D.表示正确,相当于

{{1,2},{3,4},{0,0})

20、B

二、填空题

1、函数体内定义的局部

2、指数

3、16

4、-2

5、continue

6、s=-l

7、main

8、9

9、4

10、|〃%s",str|str

【解析】输入hell。world时,中间的空格对scanf()函数来说是终止符,后

面的内容无法读取。

三、编程题

1、^include

voidmain()

(

inta[3][4]={{60,70,65,75},{75,80,75,90},{95,75,90,65}};

inti,j;

floataverage,sum=0.0;

printf(〃三个学生的总分和平均成绩依次为:\n〃);

for(i=0;i<3;i++)

(

sum=0.0;

for(j=0;j<4:j++)

sum=sum+a[i][j];

average=sum,4;

printf("%.2f,%.2f\n〃,sum,average);

}

)

2、^include<stdio.h>

voidreverse(char*s)

(

//获取字符串长度

intlen=0;

cliax*p=s;

while(*p!=0)

(

len++;

p++;

//交换...

inti=0;

charc;

while(i<=len/2-1)

(

c=*(s+i);

*(s+i)=*(s+len-1-i);

*(s+len-1-i)=c;

i++;

}

)

intmain()

(

chars[]=〃abcT23-xyz〃;

printf(/z,%sJ=>\nz/,s);

reverse(s);//反转字符串

printf("'%s''n〃,s);

return0;

)

【解析】质数(primenumber)又称素数,有无限个。一个大于1的自然数,

除了1和它本身外,不能被其他自然数整除。

3、#iiiulude<bldio.h>

#include<stdlib.h>

#include<malloc.h>

typedefstructLNode{

intdata;

structLNode*next;

}LNode,*LinkList;

LinkListCrcatcListlintn);

voidprint(LinkListh);

intmain()

(

LinkListHead=NULL;

intn;

scanf(〃%d〃,&n);

Head=CreateList:n);

printf(〃刚刚建立的各个链表元素的值为:\n〃);

print(Head);

printf('\n\n〃);

system("pause");

return0;

)

LinkListCreateListlintn)

(

LinkListL,p,q;

inti;

L=(LNode*)uialloc(sizeof(LNode));

if(!L)return0;

L->next=NULL;

q二L;

for(1=1;iV=n;i-+)

p=(LinkList}malloc(sizeof(LNode));

printf(〃请输入第%d个元素的值:〃,i);

scanf(z/%d/z,&(p->data));

p->next=NULL;

q->next=p;

q二P;

)

returnL;

)

voidprint(LinkListh)

(

l.inkl.ist.p=h->npxt:

while(p!=NULL){

printfC^dp->data);

p=p->next;

)

}

历年计算机C语言专升本题目(四)

(总分100分,考试时长90分钟)

一、单项选择题(每小题2分,共40分)

1、下面程序段的功能是

ttinclude<stdio.h>

main()

{

charsi;

sl=putc(getc(stdin),stdout);

)

A、从键盘输入一人字符给字符变量si

B、从键盘输入一人字符,然后再输出到屏幕

C、从键盘输入一人字符,然后在输出到屏幕的同时赋给变量si

D、在屏幕上愉出stdout的值

2、用语句scanf(〃%c%c%c〃,&cl,&c2,&c3)输入〃a,b,c〃时,变量cl、c2、c3的

值分别为()

A、'a','b','c'

C、'a','b'

D、a,,c

3、switch语句中表达式(expression)的值不允许用的类型是。

A、byle

B、int

C、boolean

D、char

4、设有循环语句〃for:i=l;i>0;i++)i++;〃,其循环执行的次数是o

A、无限

B、0

C、3

D、4

5、下面函数的功能是

char*fun(char*str7char*str2){

while((*str1)&&(*str2++=*strl++));

returnstr2;

)

A、求字符串的长度

B、比较两个字符串的大小

C、将字符串strl复制到字符串str2中

D、将字符串strl接续到字符串str2中

6、若有定义语句:inta[4][10],*p,*q[4];且0<=iV4,则错误的赋值是

A、p=a

B、q[i]=a[i]

C、p=a[i]

D、p=&a[2][l]

7、定义如下变量和数组:inti,x[3][3]={1,2,3,4,5,6,7,8,9

};则下面语句for(i=0;i<3;i++)printf(〃%d",x[i][2-i]);的输出结果是

A、159

B、147

C、357

D>369

8、c语言中,int型数据在内存中的存储形式是________o

A、ASCII码

B、补码

C、反码

D、原码

9、下面选项中合法的字符常量是。

A、〃X〃

B、'X'

C、'abc'

D、'\'

10、设有如下程序段chars[20]=〃bejing〃,*p;p=s;则执行p=s;语句后,以

下叙述正确的是________O

A、可以用*p表示s[0]

B、s数组中元素的个数和p所指字符串长度相等

C、s和p都是指针变量

D、数组s中的内容和指针变量p中的内容相等

11、以下叙述中错误的是________。

A、在一个程序中,每个模块均可以独立编译运行

B、程序“模块化”有利于任务的分解简化

C、允许对函数单独进行编译,是C语言实现“模块化”的基础

D、采用模块化结构,可以提高编程效率

12、下列是多行注释的符号是o

A、//

B、/

C、[*

D、/**/

13、计算斐波那契数列第n项的函数定义如下:intfib(intn)

if(n==0)returnl;

elseif(n==l)

return2;

else

returnfib(n-l)+fib(n-2);

}

若执行函数调用表达式fib(2),函数fib被调用的次数是

A、1

B、2

C、3

D、4

14、设有以下说明语句:

typeclefstructstu

(

inta;

floatb;

)

stutype;

则下面叙述中错误的是O

A、struct是结构类型的关键字

structstu是用户定义的结构类型

C、a和b都是结构成员名

D、stutype是用户定义的结构体变量名

15、请阅读下面的程序,选择正确的输出结果。()

voidmain()

(

printf(〃%d〃,null);

)

A、0

B、变量无定义

C、-1

D、1

16、下列for循环语句的执行次数是。

for(intx=0,y=0;(y!=0)&&(x<4);x++)

A、无限次

B、一次也不执行

C、执行一次

D、执行三次

17、有以下程序

structstu

charname[10];

intnum;

floattotalscore;

};

voidf(structstu*p)

(

structstus[2]={{〃sundan〃,20044,550],{"penghua”,20045,537}},

*q=s;

++P;

++q;

*p=*q;

)

main()

(

structstus[3]={{"yangsan”,20041,703),{"lisiguo”,20042,580});

f(s);

printf(z/%s%d%3.0f\n〃,s[l].name,s[l].num,s[l].totalscorc):

)

程序运行后的输出结果是o

A、SunDan20044550

B、Penghua20045537

C、LiSiGuo20042580

D、SunDan20041703

18、下述程序段的执行结果是o

ttinclude<stdio.h>

voidmain(){

intx;

for(x=l;x<=100;x++)if(++x%3—0)if(++x%4==0)if(++x%7==0)

printfx);

)

A、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论