C语言程序设计试题A.docx

上传人:b****0 文档编号:17742781 上传时间:2023-08-03 格式:DOCX 页数:18 大小:21.02KB
下载 相关 举报
C语言程序设计试题A.docx_第1页
第1页 / 共18页
C语言程序设计试题A.docx_第2页
第2页 / 共18页
C语言程序设计试题A.docx_第3页
第3页 / 共18页
C语言程序设计试题A.docx_第4页
第4页 / 共18页
C语言程序设计试题A.docx_第5页
第5页 / 共18页
C语言程序设计试题A.docx_第6页
第6页 / 共18页
C语言程序设计试题A.docx_第7页
第7页 / 共18页
C语言程序设计试题A.docx_第8页
第8页 / 共18页
C语言程序设计试题A.docx_第9页
第9页 / 共18页
C语言程序设计试题A.docx_第10页
第10页 / 共18页
C语言程序设计试题A.docx_第11页
第11页 / 共18页
C语言程序设计试题A.docx_第12页
第12页 / 共18页
C语言程序设计试题A.docx_第13页
第13页 / 共18页
C语言程序设计试题A.docx_第14页
第14页 / 共18页
C语言程序设计试题A.docx_第15页
第15页 / 共18页
C语言程序设计试题A.docx_第16页
第16页 / 共18页
C语言程序设计试题A.docx_第17页
第17页 / 共18页
C语言程序设计试题A.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言程序设计试题A.docx

《C语言程序设计试题A.docx》由会员分享,可在线阅读,更多相关《C语言程序设计试题A.docx(18页珍藏版)》请在冰点文库上搜索。

C语言程序设计试题A.docx

C语言程序设计试题A

班级:

姓名:

学号:

密封线

四川职业技术学院2005—2006学年第1学期期末考试

《C语言程序设计》(A)

(供04电气、04机电班使用)

考试时间:

120分钟满分:

100分命题人:

陈科

题号

总分

总分人

分数

 

…………………………………………………………………………………………

一、单项选择题,答案不写入答题栏的一律不得分!

(每题1.5分,共52.5分)

1、结构化程序设计的3种结构是        。

A)顺序结构、选择结构、转移结构   

B)分支结构、等价结构、循环结构

C)多分支结构、赋值结构、等价结构

D)顺序结构、选择结构、循环结构

2、以下叙述中正确的是        。

A)C语言比其他语言高级    

B)C语言可以不用编译就能被计算机识别执行

C)C语言以接近英语国家的自然语言和数学语言作为语言的表达

形式

D)C语言出现的最晚,具有其他语言的一切优点

3、C语言中最简单的数据类型包括        。

A)整型、实型、逻辑型     B)整型、实型、字符型

C)整型、字符型、逻辑型   D)字符型、实型、逻辑型

4、若变量已正确定义并赋值,以下符合C语言语法的表达式是。

A)a:

=b+1   B)a=b=c+2 C)int18.5%3  D)a=a+7=c+b

5、若变量a,i已正确定义,且i已正确赋值,合法的语句是        。

A)a==1       B)++i;      C)a=a++=5;    D)a=int(i);

6、已知:

intt=0;

while(t=1){...}

则以下叙述正确的是        。

A)循环控制表达式的值为0  B)循环控制表达式的值为1

C)循环控制表达式不合法   D)以上说法都不对

7、若变量已正确说明为float型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋予10.0,b赋予22.0,c赋予33.0,下列不正确的输入形式是        。

A)10<回车>22<回车>33<回车>   B)10.0,22.0,33.0<回车>

C)10.0<回车>22.033.0<回车>   D)10 22<回车>33<回车>

8、有如下程序:

main()

{

intx=1,a=0,b=0;

switch(x)

{

case0:

b++;

case1:

a++;

case2:

a++;b++;

}

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

该程序的输出结果是

A)a=2,b=1       B)a=1,b=1     C)a=1,b=0     D)a=2,b=2

9、有以下程序

main()

{inti=1,j=1,k=2;

if((j++||k++)&&i++)

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

}

执行后输出结果是        。

A)1,1,2      B)2,2,1       C)2,2,2      D)2,2,3

10、有如下程序

main()

{floatx=2.0,y;

if(x<0.0)y=0.0;

elseif(x<10.0)y=1.0/x;

elsey=1.0;

printf("%f\n",y);}

该程序的输出结果是        。

A)0.000000       B)0.250000    C)0.500000       D)1.000000

11、有如下程序:

main()

{intn=9;

while(n>6){n--;printf("%d",n);}

}

该程序的输出结果是        。

A)987    B)876    C)8765    D)9876

12、在下列选项中,没有构成死循环的是        。

A)inti=100;

while

(1)

{i=i%100+1;

if(i>100)break;

}

 B)for(;;);

C)intk=10000;

do{k++;}while(k>10000);

D)ints=36;

while(s)--s;

13、设intx=1,y=1;表达式(!

x||y--)的值是        。

A)0      B)1       C)2       D)-1

14、有以下程序

floatfun(intx,inty)

{return(x+y);}

main()

{inta=2,b=5,c=8;

printf("%3.0f\n",fun((int)fun(a+c,b),a-c));

}

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

A)编译出错   B)9   C)21  D)9.0

15、若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是        。

A)函数调用可以作为独立的语句存在  

B)函数调用可以作为一个函数的实参

C)函数调用可以出现在表达式中     

D)函数调用可以作为一个函数的形参

 

16、若有以下调用语句,则不正确的fun函数的首部是        。

main()

{…

inta[50],n;

fun(n,&a[9]);

}

A)voidfun(intm,intx[])B)voidfun(ints,inth[41])

C)voidfun(intp,int*s)  D)voidfun(intn,inta)

[解析]把数组a中9号元素的地址传递给fun的函数参数,本题的考点是用什么来做函数的形参。

A选项用不定长度的数组x作形参;B选项用长度小于50的数组h作形参;C用指针变量*s作形参;显然D中形参变量a只是普通的整形变量,不能接收来自于实参9号元素的地址。

 

17、fseek函数的正确调用形式是        。

A)fseek(文件指针,起始点,位移量)B)fseek(文件指针,位移量,起始点)

C)fseek(位移量,起始点,文件指针)D)fseek(起始点,位移量,文件指针)

 

18、若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是        。

A)EOF      B)-1    C)1      D)NULL

 

19、若有说明语句:

charc='\72';则变量c        。

A)包含1个字符       B)包含2个字符     C)包含3个字符 D)说明不合法,c的值不确定

 

20、若有说明inta[3][4];则a数组元素的非法引用是        。

A)a[0][2*1]    B)a[1][3] C)a[4-2][0]    D)a[0][4]

 

21、设有以下说明语句

structstu

{inta;

floatb;

}stutype;

则下面的叙述不正确的是        。

A)struct是结构体类型的关键字         B)structstu是用户定义的结构体类型

C)stutype是用户定义的结构体类型名         D)a和b都是结构体成员名

 

22、在C语言中,引用数组元素时,其数组下标的数据类型允许是        。

A)整型常量 B)整型表达式C)整型常量或整型表达式  D)任何类型的表达式

 

23、若运行时给变量x输入12,则以下程序的运行结果是        。

main()

{intx,y;

scanf("%d",&x);

y=x>12?

x+10:

x-12;

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

}

A)0       B)22        C)12      D)10

 

24、以下说法正确的是        。

A)C语言程序总是从第一个的函数开始执行

B)在C语言程序中,要调用函数必须在main()函数中定义

C)C语言程序总是从main()函数开始执行

D)C语言程序中的main()函数必须放在程序的开始部分

 

25、表达式0x13^0x17的值是        。

A)0x04    B)0x13      C)0xE8    D)0x17

 

26、有以下程序

#defineF(X,Y)(X)*(Y)

main()

{inta=3,b=4;

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

}

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

A)12        B)15            C)16            D)20

 

27、下列程序执行后的输出结果是        。

voidfunc(int*a,intb[])

{b[0]=*a+6;}

main()

{inta,b[5];

a=0;b[0]=3;

func(&a,b);printf("%d\n",b[0]);

}

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

[解析]func(&a,b)中两个参数分别把整形变量a的地址传递给指针变量*a、把数组b(即数组名作实参)首元素的地址传递给形参数组b[]。

因此在func()函数中,b[0]=*a+6=0+6=6。

 

28、若有下面的程序段:

chars[]="china";char*p;p=s;

则下列叙述正确的是        。

A)s和p完全相同    B)数组s中的内容和指针变量p中的内容相等

C)s数组长度和p所指向的字符串长度相等     D)*p与s[0]相等

 

29、有以下程序

voidsort(inta[],intn)

{inti,j,t;

for(i=0;i

for(j=i+1;j

if(a[i]

}

main()

{intaa[10]={1,2,3,4,5,6,7,8,9,10},i;

sort(&aa[3],5);

for(i=0;i<10;i++)printf("%d,",aa[i]);

printf("\n");

}

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

A)1,2,3,4,5,6,7,8,9,10,  B)10,9,8,7,6,5,4,3,2,1,

C)1,2,3,8,7,6,5,4,9,10,    D)1,2,10,9,8,7,6,5,4,3,

[解析]sort(&aa[3],5)的作用是把数组aa的第3号元素及其后续4个元素(一共5个元素)由大到小排列,其他元素原样输出。

 

30、以下程序的运行结果是        。

#include"stdio.h"

main()

{structdate

{intyear,month,day;}today;

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

}

A)6       B)8         C)10          D)12

 

31、若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是        。

A)a,point,*&a  B)&*a,&a,*point C)*&point,*point,&a  D)&a,&*point,point

 

32、已定义以下函数

fun(char*p2,char*p1)

{

while((*p2=*p1)!

='\0'){p1++;p2++;}

}

函数的功能是        。

A)将p1所指字符串复制到p2所指内存空间 B)将p1所指字符串的地址赋给指针p2

C)对p1和p2两个指针所指字符串进行比较D)检查p1和p2两个指针所指字符串中是否有'\0'

 

33、若执行下述程序时,若从键盘输入6和8时,结果为        。

main()

{inta,b,s;

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

s=a

if(a

s=b;

s*=s;

printf("%d",s);

}

A)36       B)64        C)48          D)以上都不对

 

34、下列关于C语言数据文件的叙述中正确的是        。

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

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

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

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

 

35、有以下程序

voidss(char*s,chart)

{while(*s)

{if(*s==t)*s=t-'a'+'A';

s++;

}

}

main()

{charstr1[100]="abcddfefdbd",c='d';

ss(str1,c);printf("%s\n",str1);

}

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

A)ABCDDEFEDBD  B)abcDDfefDbD     C)abcAAfefAbA     D)Abcddfefdbd

[解析]把字符串中的小写字符‘d’转换为大写字符‘D’。

字符指针*s是指向该串的首字符(即字符‘a’),随着s++不断向后续字符移动。

t-'a'+'A'是英文字符小写转大写的公式,这里不再赘述。

 

二、填空题,答案不写入答题栏的一律不得分!

(每空2分,共30分)

36、以下程序段的输出结果是  28   。

main()

{inta=2,b=3,c=4;

a*=16+(b++)-(++c);

printf("%d",a);

}

 

37~38、若变量n中的值为24,则print()函数共输出5行,最后一行有4个数。

voidprint(intn,intaa[])

{inti;

for(i=1;i

{printf("%6d",aa[i]);

if(!

(i%5))printf("\n");

}

printf("\n");

 

39、调用C语标准库函数时要求用include命令。

 

40、stract函数的作用是连接两个字符数组中的字符串。

 

41、C语言程序的注释可以出现在程序中的任何地方,一个注释以 /**/ 作为开始和结束。

 

42、设二进制数A是00101101,若想通过异或运算A^B使A的高4位取反,低4位不变,则二进制数B应是11110000。

 

43、若已知a=10,b=20,则表达式!

a

 

44、设i,j,k均为int型变量,则执行完下面的for语句后,k的值为  10   。

for(i=0,j=10;i<=j;i++,j--)k=i+j;

 

45~46、下面函数的功能是:

找出一维数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。

数组元素中的值已在主函数中赋予。

主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。

randomize()是初始化随机数生成器函数,rand()返回一个随机数函数。

请填空。

#include

#include

voidfun(inta[],intn,int*max,int*d)

{inti;

*max=a[0];

*d=0;

for(i=0;i

if(*max

{*max=a[i];*d=i;}

}

main()

{inti,x[20],max, index,n=10;

randomize();

for(i=0;i

{

x[i]=rand()%50;printf("%4d",x[i]);

}

printf("\n");

fun(x,n,&max,&index);

printf("Max=%5d,Index=%4d\n",max,index);

}

 

47、以下程序的输出结果是  246  。

voidfun()

{staticinta=0;

a+=2;printf("%d",a);

}

main()

{intcc;

for(cc=1;cc<4;cc++)fun();

printf("\n");

}

[解析]第一次调用fun(),输出a为2;第二次调用fun(),输出a为4(局部静态变量,不重新赋初值);则第三次调用输出为6。

 

48、以下程序的输出结果是   7   。

#defineMAX(x,y)(x)>(y)?

(x):

(y)

main()

{inta=5,b=2,c=3,d=3,t;

t=MAX(a+b,c+d)*10;

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

}

 

49、下列y的值是   8   。

inty;y=sizeof(2.25*4);

 

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

请填空。

intmystrlen(char*str)

{inti;

for(i=0;*(str+i)或者写成str[i]!

=′\0′;i++);

return(i);

}

 

三、程序设计题。

要求程序结构清晰,没有逻辑错误,书写工整,无需写出运行结果。

请写在背面并标明题号(第51题7.5分、第52题10分,共17.5分,按关键步骤评分)

51、输入一个3╳3的整数矩阵,求其对角线元素之差。

#include

voidmain()

{

inta[3][3],minus;

inti,j;

printf("enterdata:

\n");

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

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

scanf("%d",&a[i][j]);

minus=a[0][0];

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

minus=minus-a[i][i];

printf("minus=%6d\n",minus);

}

52、有10个学生,每个学生的数据包括学号(stu_num,6个字符,如s00101)、姓名(name,8个字符)、三门课程的成绩(score[3],实型)及其平均分(avr,实型,初始时不赋值,)。

首先输入这10个学生的数据,然后再计算每个学生3门课程的平均分,存回avr中,并输出第6号学生的所有信息。

#include

#defineN10

structstudent

{

charstu_num[6];

charname[8];

floatscore[3];

floatavr;

}stu[N];

 

voidmain()

{

floatsum;

inti,j;

for(i=0;i

   {printf("enterinformationofstudent%d:

\n",i+1);

    printf("stu_num:

");

    scanf("%s",stu[i].stu_num);

    printf("name:

");

    scanf("%s",stu[i].name);

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

      {printf("score%d:

",j+1);

       scanf("%f",&stu[i].score[j]);/*此处的&运算符是指取结构体数组中元素的地址*/

      }

    }

for(i=0;i

 {sum=0;

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

    sum+=stu[i].score[j];

  stu[i].avr=sum/3.0;

 }

printf("stu_num    name      score1     score2     score3    average_score\n");

printf("%6s%10s",stu[5].stu_num,stu[i].name);

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

 printf("%9.2f",stu[5].score[j]);

printf("%8.2f",stu[5].avr);

}

 

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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