西安外国语大学往年计算机C语言期末模拟及答案_第1页
西安外国语大学往年计算机C语言期末模拟及答案_第2页
西安外国语大学往年计算机C语言期末模拟及答案_第3页
西安外国语大学往年计算机C语言期末模拟及答案_第4页
西安外国语大学往年计算机C语言期末模拟及答案_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

西安外国语大学计算机C语言期末模拟

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

1、以下叙述中错误的是

A、用户所定义的标识符允许使用关键字

B、用户所定义的标识符应尽量做到''见名知意”

C、用户所定义的标识符必须以字母或下划线开头

D、用户定义的标识符中,大、小写字母代表不同标识

2、下列语句合法的是o

A、4+c=b=0;

B、a=++c;

C、a=2=b=6;

D、a=4++;

3、表达式y=(13>12?15:6>7?8:9)的值为。

A、9

B、8

C、15

D、1

4、设a、b、e、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,

则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值是。

A、0

B、1

C、2

D、3

5、以下程序的输出结果是o

#include<stdio.h>

main()

(

char*s="121";

intk=0,a=0,b=0;

do

(

k++;

if(k%2==0)

a=a+s[k]->\0);

continue;

b=b+s[k]-'\0';

a=a+s[k]-,\0,;

)

while(s[k+1]);

printf(zzk=%da=%db=%d\n,/,k,a,b);

)

A、k=3a=98b=49

B、k=3a=99b=50

C、k=2a=99b=50

D、k=2a=98b=49

6、有以下程序

voidfun(chars[][10],intn)

(

chart;inti,j;

for(i=0;i<N-l;I++)

for(j=i+l,j<N;J++)}

/*比较字符串的首字符大小,并交换字符

串的首字符*/

if(s[i][0])>s[j][0]){

t=s[i][0];s[i][O]=s[j][0];s[j][0]=t;

)

main()

(

charss[5][10]={"bcc","bbcc","xy","aaaacc","aabcc”);

fun(ss,5);printf(w%s,%s”,ss[0],ss[4]);

)

程序运行结果是o

A、xy,aaaacc

B、aaaacc,xy

C、XCC,aabcc

D、ace,xabcc

7、以下选项中可作为c语言合法整数的是o

A、10110B

B、0386

C、OXffa

D、x2a2

8、下面程序段的功能是o

....inta[]={4,0,2,3,1},i,j,t;

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

{

t=a[i];

j=i;

J—;

}

while(j>=0&&t>a[j])

(

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

J—;

a[j+l]=t;

}

A、对数组a进行插入排序(升序)

B、对数组a进行插入排序(降序)

C、对数组a进行选择排序(升序)

D、对数组a进行选择排序(降序)

9、无符号二进制整数10111转换成十进制整数,其值是o

A、17

B、19

C、21

D、23

10、以下关于字符串的叙述中正确的是o

A、c语言中有字符串类型的常量和变量

B、两个字符串中的字符个数相同时才能进行字符串大小的比较

C、可以用关系运算符对字符串的大小进行比较

D、空串一定比空格打头的字符串小

11、数组inta[3][4];其中错误的数组引用为。

A、a[0][0]

B、a[l][3]

C、a[3][3]

D、a[0]

12、有以下程序(strcpy为字符串复制函数,strcat为字符串连接函数):

main()

chara[10]="abc",b[10]="012”,c[10]="xyz”;

strcpy(a+1,b+2);

puts(strcat(a,c+1));

)

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

A、al2xyz

B、12yz

C、a2yz

D、bc2yz

13、在64位编译器环境下,int类型占多少字节?

A、2

B、4

C、1

D、8

14、以下()不是c语言中用于结构化程序设计的三种基本结构之一。

A、顺序结构

B、选择结构

C、递归结构

D、循环结构

15、执行下列程序段后输出的结果是

{

intx,y,z=l;

for(x=l,y=-l;x<y;x++,y一)z++;

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

)

A、1

B、2

C、5

D、6

16>若有intx=l;

,执行下列程序段后,变量X的正确结果是O

switch(x*10)

(

case9:x+=l;

break;

case10:x+=l;

case11:x+=l;

default:x+=l;

A、1

B、2

C、3

D、4

17、设有以下语句

typedefstructs

(

intg;

charh;

)

t;

则下面叙述中正确的是O

A、可用S定义结构体变量

B、可以用T定义结构体变量

C、S是struct类型的变量

D、T是structS类型的变量

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

#defineM(x,y,z)x*y+z

main()

(

inta=l,b=2,c=3;

printf("%d\n”,m(a+b.b+c,c+a));

}

A、19

B、17

C、15

D、12

19、设有数据定义语句“inta[200];”,下列数组元素引用中下标不越界的是

A、a[_l]

B、a[201]

C、a[0]

D、a[200]

20、有以下程序

ttinclude<stdlib.h>

structnode

intnum;

structnode*next;

);

main()

(

structnode*p,*q,*r;

intsum=0;

p=(structnode*)malloc(sizeof(structnode));

q=(structnode*)malloc(sizeof(structnode));

r=(structnode*)malloc(sizeof(structnode));

p->num=l;

q->num=2;

r->num=3;

p->r)ext=q;

q->next=r;

r->next=null;

sum+=q->next->num;

sum+=p->num;

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

)

执行后的输出结果是o

A、3

B、4

C、5

D、6

二、判断题(共10题,每小题2分,共20分)

()1、函数的形参都属于全局变量。

()2、for语句的一般形式如下,若表达式2的值为“真",则先执行循环体语

句,再计算表达式3,然后继续循环。

()3、c程序中if语句可以单独存在。

()4、do-while循环中,根据情况可以省略while.()

()5、用puts和gets函数可以输入或输出多个字符串。

()6、对于一个具体的函数来说,实参与形参不必一一对应。

()7、数组的基地址是在内存中存储数组的起始位置,数组名本身就是一个地

址即指针值。

()8、指针变量,只能作为函数的形参,不可以作函数的实参

()9、用strcat(字符串1,字符串2)连接两个字符串函数时,字符串1的存

储空间必须足够大。

()10、全局变量的作用域是整个源程序文件。

三、编程题(共3题,共40分)

1、编写程序:一个数如果恰好等于它的因子之和,这个数就称为〃完数例

如6=1+2+3.编程找出1000以内的所有完数。(本题10分)

2、编写程序,判断从键盘输入的字符中数字字符的个数、大写字母的个数、小

写字母的个数及其它字符的个数,以*作为字符输入结束标志。(本题14分)

3、试利用指向结构体的指针编制一程序,实现输入3个学生的学号、数学期中

和期末考试成绩。然后计算其平均成绩并输出成绩表,使用结构体实现。(本

题16分)

参考答案

一、单项选择题

1、A

2、B

3、C

4、C

5、C

【解析】第1次循环中,k=l,不执行if分支,s[k]='2',因此b=2,a=2

因s[k+l]='1'进入第2次循环,k=2,执行if分支,s[k]='1',使a=3,

进而提前结束本次循环,s[k+l]='\0’,则退出循环,所以k=2,a=3,b=2o

6、D

7、C

8、B

【解析】本题考查数组的使用,注意插入排序方法。

9、D

10、D

11、C

12、C

13、B

14、C

15、A

16、D

17、A

18、D

19、C

20、B

二、判断题

1、错误

2、正确

3、正确

4、错误

5、错误

6、错误

7、正确

8、正确

9、正确

10、错误

三'编程题

1、#include<stdio.h>

#defineN1000

intmain()

(

inti,j,k,n,sum;

inta[256];

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

(

sum=a[0]=l;

k=0;

for(j=2;j<=(i/2);j++)

{

if(i%j==O)

(

sum+=j;

a[++k]=j;

if(i==sum)

(

printf("%d=%d”,i,a[0]);

for(n=l;n<=k;n++)

printf("+%d",a[n]);

printf('\n");

)

return0;

}

2、voidmain()

{

inti,x,m=0,n=0,k=0,j=0;

chara[20];

printf(〃请输入字符串:〃);

gets(a);

x=strlen(a);

for(i=0;i=,O'&&a[i]<=,9')

m++;

elseifA'&&a[i]<='Z')

n++;

elseif(a[i]>=,a&&a[i]<=,z)

k++;

else

j++;

)

printf(〃%d,%d,%d,%d\n〃,m,n,k,j);

}

3、#include<stdio.h>

structstudent

(

longnumber;

intscor

温馨提示

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

评论

0/150

提交评论