电子科技大学《C语言》自测题答案.docx

上传人:b****8 文档编号:11915153 上传时间:2023-06-03 格式:DOCX 页数:24 大小:99.33KB
下载 相关 举报
电子科技大学《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语言》自测题答案

自测题1答案

一、填空题(每空1分,共29分)

1、若有以下的定义:

inta[6];则数组a元素的下标的上限为5,下限为0。

2、局部的变量是在函数内部定义的,它们只在本函数有效。

3、组成C程序的若干函数中,只能且必须有一个主函数。

4、C语言中的变量名可以由字母,数字和下划线三种字符组成,且首字符不能是。

5、枚举类型enumcolor(bla,blu,gre=3,cya,red)中的枚举项的值bla=__0__、blu=__1__、cya=__4__、red=__5___.

6、c语言中变量的存储属性有自动、____静态____、__外部______和寄存器四种。

7、算术运算符,关系运算符,赋值运算符的优先级从低到高依次是赋值运算符,关系运算符,算术运算符。

8、标准文件是系统自动打开和关闭的,但是一般用户文件,必须在程序中用函数_fopen()_打开文件,文件操作结束后,用__fclose()_关闭文件。

9、函数参数有形式参数和实际参数两种形式。

10、程序的三种基本结构是顺序结构,选择结构,循环结构。

11、x、y、z均为int型变量,请写出描述“x或y中有一个小于z”的表达式__x

12、下面程序的运行结果是:

c1=c,c2=abc

#include<>

main()

{chars[10]={“abc”};

printf(“c1=%c,c2=%s\n”,s[2],s);

}

13、如果a=5,b=2,c=3,d=4,则表达式a

c

d的值是3。

14、设a=6,b=2,表达式a*=a+b运算后a的值为48。

15、设x=.,a=9,y=,表达式x+a%2*(int)(x+y)%2/4的值。

二、选择题(每小题2分,共26分)

1、一个C程序的执行是从A

A)本程序的main函数开始,到main函数结束。

B)本程序的第一个函数开始,到本程序最后一个函数结束。

C)本程序的main函数开始,到本程序文件的最后一个函数结束。

D)本程序的第一个函数开始,到本程序main函数结束。

2、下面的四个选项中,均不是合法的用户标识符的选项是B

A)BB)b-aC)floatD)_123

M_0goto2abtemp

Doint_AINT

6、请问:

下面这个程序段的输出是什么D

inta=7,b=8,c=9;

if(a

a=b;

b=c;

c=a;

}

printf("a=%db=%dc=%d\n",a,b,c);

 A.a=7b=8c=7B.a=7b=9c=7

C.a=8b=9c=7D.a=8b=9c=8

7、以下描述正确的是C

A)goto语句只能用于退缩出多层循环。

B)switch语句中不能出现continue语句。

C)只能用continue语句中来终止本次循环。

D)在循环语句中break语句不独立出现。

8、以下对二维数组a的正确说明是C

A)inta[3][];B)floata(3,4);

C)inta[3][4]D)floata(3,)(4);

9、有下面的程序段

chara[3],b[]=”student”;

a=b;

printf(“%s”,a);

则D

A)运行后将输出student;B)运行后将输出b;

C)运行后将输出aD)编译出错

10、若用数组名作为函数调用的实参,传给形参的是A

A)数组的首地址B)数组的第一个元素值

C)数组的全部元素值D)数组中元素的个数

11、在说明语句:

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

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

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

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

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

12.变量的指针,其含义是指该变量的___D_____

A)一个标志B)值C)名D)地址

13.已知intb;则对指针变量正确的说明和初始化是:

__D__

A)int*p=b;B)intp=b;C)intp=&b;D)int*p=&b;

三、判断题(在你认为正确的表达式前打√,错误的打×,每小题1分,共15分)

(×)1、switch语句中,所有case后的常量表达式可以相同

(√)2、C语言不能嵌套定义函数,但可以嵌套调用。

(√)3、使用宏定义时,宏名可以是大写或者小写,但是常用大写字母表示。

(√4、C语言函数的缺省类型是void型(空类型)。

(×)5、打印三行输出的C语言程序必须用三条printf语句。

(×)6、如果a>b或cb&&c

(√)7、如果有:

intdata[10];int*p;则语句p=data 和语句p=&data[0]等价。

(√)8、联合类型是在同一个存储空间,可以为几个不同数据类型的成员所使用。

(×)、一个数组能够存储许多不同类型的值。

1.

#include<>

#defineSQR(y)y*y

main()

{

inta,b=4;

a=SQR(b+1);

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

}

运行结果___25_____

2.

#include<>

main()

{chars[]="456789";

s[4]='\0';

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

}

运行结果___4567_____

四、阅读下列程序,请将运行结果写在答题卡上(每题3分,共15分)。

 

 

 

五、编写下列程序,(共15分)

1.试编写一个程序计算a!

+b!

+c!

,并要求有输出结果.

解:

#include<>

fact(int);

voidmain()

{

inta,b,c;

printf(”Enterthreenumbers:

”);

scanf(“%d,%d,%d”,&a,&b,&c);

printf(%d!

+%d!

+%d!

=%d+%d+%d\n”,a,b,c,fact(a),fact(b),fact(c));

return;

}

fact(intn)

{

intresult;

if(n==1)return

(1);

result=fact(n-1)*n;/*递归调用*/

return(result);

}

2.编写一个程序,将一组数据{6,5,8,1,0,4,7,3,2,9}按从小到大的顺序排列,程序显示排序前和排序后的结果。

解:

#include<>

#defineN10

main()

{

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

inti,j,t;

printf(“Thearraybeforesorted:

”);

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

{

for(j=i+1;j<10;j++)

{

if(a[i]>a[j])

{

t=a[i];

a[i]=a[j];

a[j]=t;

}

}

}

for(i=0;i

printf(“%4d”,a[i]);

return0;

}

自测题2答案

一、填空题

1.设inta=5,b=6,写出表达式a=a+b的值_11__。

2.若有代数式x2÷(3x+5),则正确的C语言表达式为:

_____x*x/(3*x+5)________。

3.开发一个c语言的源程序要经过的四个阶段_编辑C语言源程序文件,编译源程序,程序连接,程序运行____。

4.inti=5,j,k;j=i++;k=i;则k的值为__6____。

5.已知:

ints[][3]={1,2,3,4,5,6};此时数组元素s[1][1]的值为____5______。

6.字符串“hello”占用内存____6______字节。

7.程序段floata=;printf("a=%",a);执行时输出的结果是____a=__________,(用大写字母U表示空格)。

8.执行下面程序段时输出的结果是___7___。

#include<>

main()

{

inti=5;

switch(i)

{case5:

case6:

i+=2;

case7:

break;

case8:

i+=2;

}

printf("i=%d",i);

}

 

语言中有5种基本数据类型。

它们是字符型,整型,__浮点型_____,____长浮点型(双精度型)__和_无值型_____,其关键字分别是:

char,int,__fload___,__double___和__void___。

二、单项选择题

1.在程序中可以用来作为变量名的合法的标识符是:

___c_____

AstaticB23_b1Cstu_1tD#33

2.下列运算符运算级别最高的是:

______

A&&B+=C>=D!

 

 

三、程序改错

 

2.统计字符串中小写字符的个数。

#include""

main()

{

charstr[20];

inti,n=0;

gets();

for(i=0;str[i]!

="/0";i++)改为\0

if(str[i]>='a'&&str[i]<='z')n++;

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

}

 

3.

include<>#include<>

fun(int*s,k)

{

inti;

for(i=0;i

s[i]+=5;

returns[k-1]

}

main()

{inta[5]={1,2,3,4},x;

x=fun(a,5);

printf("%d",x);

}

 

4.include<>

{

main()

inta,b,c,sum;

a=1;

b=2;

scanf(“%d”,&c);

sum=a+b+c

printf(“sum=”,sum)

}

改为:

#include<>

main()

{

inta,b,c,sum;

a=1;

b=2;

scanf(“%d”,&c);

sum=a+b+c;

printf(“sum=%d”,sum);

}

 

四、阅读下列程序,写运行结果

1.

#include<>

main()

{intm=5;

if(m++>5)printf("%d\n",m);

elseprintf("%d\n",m--);

}

运行结果____6____

2.

#include<>

main()

{chars[]="123456";

s[4]='\0';

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

}

运行结果__1234______

3.

#include<>

main()

{inti=1;

while(i<=10)

{if(!

(i%3))printf("%d,",i);

i++;

}

}

运行结果___3,6,9_____

4.

#include<>

main()

{inta[3][3]={{3,2,2},{4,5,6},{-2,9,2}};

inti,j,s=0;

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

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

if(i==2-j)s=s+a[i][j];

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

}

运行结果___5_____

5.

#include<>

main()

{intx=20,y=15;

if(x>y)swap(&x,&y);

printf("%d",x);

}

swap(int*p1,int*p2)

{int*temp;

temp=p1;

p1=p2;

p2=temp;

}

运行结果____15____

 

 

五、编写下列程序

1.应用动态存储单元编写一个程序,计算两个浮点数之和。

申请用于存储3个浮点数的动态存储空间。

得到所要求的存储空间后,向里面存储两个数据与他们的和,接着输出这些数据。

然后将所申请的存储空间退回系统。

#include<>

#include<>

main()

{

float*prt;

prt=malloc(3*sizeof(float));

if(!

prt)

printf(“outofmemory”);

else{

printf(“\nEntertwonumbers:

”);

scanf(“%d%d”,prt,prt+1);

*(prt+2)=*prt+*(prt+1)

printf(“Thesumis%d\n”,*(prt+2));

free(prt);

}

return0;

}

2.求下面一元二次方程的根。

ax2+bx+c=0

解:

#include<>

#include<>

floatX1,X2,p,q,d;/*全局变量*/

floatgreater_than_zero(float,float);

floatequal_to_zero(float,float);

floatequal_to_zero(float,float);

floatsmaller_than_zero(float,float);

main()

{

floata,b,c;

printf(“Entera,b,c:

”);

scanf(“%f%f%f”,&a,&b,&c);

d=b*b-4*a*c;

if(d>0)

{greater_than_zero(a,b);

printf(X1=%\t,X2=%\n,X1,X2);

}

elseif(d==0)

{

equal_to_zero(a,b);

printf(“X1=X2=%\n”,X1);

}

else

{smeller_than_zero(a,b);

printf(“X1=%+%\n”,p,q);

printf(“X2=%%\n”,p,q);

}

return0;

}

floatgreater_than_zero(floatx,floaty)

{

X1=(-y+sqrt(d))/(2*x);

X2=(-y-sqrt(d))/(2*x);

Return;

floatequal_to_zero(floatx,floaty)

{

X1=(-y)/(2*x)

return;

}

floatsmaller_than_zero(floatx,floaty)

{

p=-y/(2*x);

q=sqrt(-d)/(2*x);

return:

}

自测题3答案

一、填空题

1、x、y、z均为int型变量,请写出描述“x或y中有一个小于z”的表达式__x

2、下面程序的运行结果是:

c1=c,c2=abc

#include<>

main()

{chars[10]={“abc”};

printf(“c1=%c,c2=%s\n”,s[2],s);

}

3、如果a=5,b=2,c=3,d=4,则表达式a

c

d的值是3。

4、设a=6,b=2,表达式a*=a+b运算后a的值为48。

5、设x=.,a=9,y=,表达式x+a%2*(int)(x+y)%2/4的值。

6、凡是函数中未指定存储类别的局部变量,隐含的存储类别为auto。

7、在c语言中,一个函数一般由两个部分组成,它们是首部、函数体。

8、执行下列程序段后,*(p+1)的值是b,*(p+2)的值是\0.

charc[3]=”ab”,*p;p=c;

9、在c语言中,调用函数时,如果形参是简单变量,对应的实参可以是变量、数组元素和常量,当形参和实参都是变量时,数据的传递是单向值传递。

10、说明预处理命令#definexyt(x,y)(intt;t=x;x=y;y=t)的功能是用宏名定义xyt(x,y)定义了将x、y两个参数交换。

二、选择题

1、以下选项中不合法的用户标识符是:

B

B.fileC.a$D.Dim

2、TURBOC中int类型变量所占字节数是:

B

A.1B.2C.3D.4

3、若变量已正确说明为int类型,要给a、b、c输入数据,以下正确的输入语句是:

D

A.read(a,b,d)Bscanf(“%d%d%d”,a,b,c)

C.scanf(“%D%D%D”,&a,&b,&c)D.scanf(“%d%d%d”,&a,&b,&c)

4、以下程序段的输出是:

B

printf(“|%|\n”,;

A.||B.||

C.||D.||

5、在C语言中,要求运算数是整型的运算符是A

A)/B)++C)!

=D)*

6、有输入语句:

scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a,b,c的值分别为1,3,2,从键盘上输入数据的正确形式应当是D

A)132〈回车〉D)a=1,b=3,c=2〈回车〉

C)a=1b=3c=a<回车>B)1,3,2〈回车〉

7、当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是B

if(a

if(c

else

if(a

if(b

elsex=3;

elsex=6;

elsex=7;

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

三、判断题

(√)1、C语言中,变量名用大小写是等价的。

(×)2、强制类型转换,如(double)x,只改变原变量的类型,而不改变其值。

(×)3、存储字符串所需的内存空间等于字符串的长度。

(√)4、C语言中,注释可以出现在源程序的任何位置。

(×)5、整型、字符型、指针型是C语言中最简单的数据类型。

(√)6、全局变量在整个源程序文件中都有效。

(×)7、switch选择结构中必须有default子句。

(√)8、如果x>y或者ay||a

(×)9、一个函数floatdiv(floatx,floaty),其函数原型说明为floatdiv(floatx,floaty).

(√)10、结构成员名可以与程序中的变量同名,也可以与结构类型名相同

四、阅读下面程序,请写出运行结果(每题3分,共15分)

1.以下程序的输出结果是

2.#include<>

main()

{inti=0,a=0;

while(i<20)

{for(;;)

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

elsei--;

}

i+=11;a+=i;

}

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

}

32

2.下面程序的运行结果是:

____10010__________。

#defineN10

#defines(x)x*x

#definef(x)(x*x)

main()

{inti1,i2;

i1=1000/s(N);

i2=1000/f(N);

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

}

5.f(inta)

{

autointb=0;

staticintc=3;

b++;

c++;

return(a+b+c);

}

main()

{

inta=2,i;

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

printf(“%d”,f(a));

return;

}

运行结果:

777

4.#include<>

main()

{

inti=2,p;

p=f(i,++i);

printf(“%d\n”,p);

return;

}

intf(inta,intb)

{

intc;

if(a>b)c=1;

elseif(a==b)c=0;

elsec=-1;

return(c);

}

运行结果:

1

五、编写下列程序(15分)

1.编写一程序,计算并输出1~100的整数和。

解:

#include<>

main()

{

ints=0,i;

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

s=s+i;

printf(“sum=%d\n”,s);

}

2.有一3×3的矩阵a。

要对它进行转置操作。

所谓转置,就是进行矩阵元素的行列号的对换。

列如,元素a(i,j)转换为a(j,i)。

整个转置过程要求用指针实现。

程序如下:

#include<>

main()

{

inta[3][3]={1,2,3,

4,5,6,

7,8,9,};

inti,j,k,*p;

for(i=0;i<3;i++)/*输出原始矩阵*/

{

printf(“\n”);

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

printf(“%d“,a[i][j]);

}

printf(“\n”);

p=a;

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

{

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

{

k=*(p+3*i+j);

*(p+3*i+j)=*(p+3*j+i);

*(p+3*j+i)=k;

}

}

for(i=0;i<3;i++)/*输出结果*/

{

printf(“\n”);

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

printf(“%d“,a[i][j])

}

}

 

精心搜集整理,只为你的需要

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

当前位置:首页 > 经管营销 > 经济市场

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

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