大连理工大学c语言模拟考2.docx

上传人:b****5 文档编号:11977517 上传时间:2023-04-16 格式:DOCX 页数:20 大小:19.14KB
下载 相关 举报
大连理工大学c语言模拟考2.docx_第1页
第1页 / 共20页
大连理工大学c语言模拟考2.docx_第2页
第2页 / 共20页
大连理工大学c语言模拟考2.docx_第3页
第3页 / 共20页
大连理工大学c语言模拟考2.docx_第4页
第4页 / 共20页
大连理工大学c语言模拟考2.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

大连理工大学c语言模拟考2.docx

《大连理工大学c语言模拟考2.docx》由会员分享,可在线阅读,更多相关《大连理工大学c语言模拟考2.docx(20页珍藏版)》请在冰豆网上搜索。

大连理工大学c语言模拟考2.docx

大连理工大学c语言模拟考2

下述正确的C语言常量是:

().

A、E2

B、5.0E

C、3e-3

D、1.5E2.5

C

若有定义:

inta=7;floatx=2.5,y=4.7;

则表达式x+a%3*(int)(x+y)%2/4的值是()。

A、0.000000

B、2.750000

C、3.500000

D、2.500000

D

根据下面的程序,使i=123,c1='A',c2='B'哪一种是正确的键盘输入方法().

(规定用[CR]表示回车,U表示空格)

main()

{

inti;

charc1,c2;

scanf("%d%c%c",&i,&c1,&c2);

}

A、123AUB[CR]

B、123UAUB[CR]

C、123AB[CR]

D、123[CR]AB[CR]

C

下列程序段的输出结果为()。

inta=7,b=9,t;t=a*=a>b?

a:

b;printf("%d",t);

A、49

B、63

C、7

D、9

B

inta=1,b=2,c=3;if(a>c)b=a;a=c;c=b;则c的值为()。

A、1

B、3

C、2

D、不一定

C

t为int类型,进人下面的循环之前,t的值为0

while(t=1)

{……}

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

A、循环控制表达式的值为0

B、循环控制表达式不合法

C、循环控制表达式的值为1

D、以上说法都不对

C

针对for循环语句,for(表达式1;表达式2;表达式3),下列说法正确的是().

A、break语句可以一次性跳出多层嵌套循环

B、break语句只能跳出最内层循环

C、continue语句可以一次性跳出多层嵌套循环

D、continue语句可以跳出最内层循环

B

以下不正确的定义语句是()。

A、doublex[5]={2.0,4.0,6.0,8.0,10.0};

B、charc1[]={'1','2','3','4','5'};

C、inty[5]={0,1,3,5,7,9};

D、charc2[]={'\x10','\xa','\x8'};

C

以下正确的说法是().

A、函数的类型决定返回值的类型

B、定义函数时,形参的类型说明可以放在函数体内

C、return后面不能为表达式

D、如果形参与实参的类型不一致,以实参类型为准

A

C语言规定,函数返回值的类型是由()。

A、在定义该函数时所指定的函数类型所决定

B、return语句中的表达式类型所决定

C、调用该函数时系统临时决定

D、调用该函数时的主调函数类型所决定

A

函数fun用于将一字符串按相反次序显示,则横线上的表达式为().

voidfun(char*s)

{if(!

*s)

return;

_____;

printf("%c",*s);

}

A、printf("%s",s+1);

B、fun(*(s+1));

C、printf("%s",s+strlen(s)-1);

D、fun(s+1);

D

在宏定义#definePI3.14159中,用宏名替换一个().

A、字符序列

B、函数名

C、单精度数

D、双精度数

A

若有说明:

int*p1,*p2,m=5,n;以下均是正确赋值语句的选项是()。

A、p1=&m;p2=p1;

B、p1=&m;p2=&p1

C、p1=&m;*p2=*p1;

D、p1=&m;p2=&n;*p1=*p2;

A

下列程序的运行结果是:

().

voidfun(int*a,int*b)

{int*k;

k=a;a=b;b=k;

}

main()

{inta=3,b=6,*x=&a,*y=&b;

fun(x,y);

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

}

A、63

B、36

C、00

D、编译出错

B

C语言结构体类型变量在程序执行期间()。

A、没有成员驻留在内存中

B、所有成员一直驻留在内存中

C、只有一个成员驻留在内存中

D、部分成员驻留在内存中

B

表达式(j=3,j++)的值是4.

N

若a=3,b=2,c=1则关系表达式"(a>b)==c"的值为"真"。

Y

C语言的输入功能是由系统提供的输入函数实现的.

Y

charc[6]="abcde";printf("%3s",c)表示输出的字段的宽度为3位,如果被输出的数据的位数大于3,只输出3位数.

N

条件表达式x?

'a':

'b'中,若x=0时,表达式的值为'a'.

N

设x=1,y=2,z=3,则逻辑表达式x-y>z&&y!

=z的值为0.

Y

已知a=3,b=4,c=5.则逻辑表达式a+b>c&&b==c值为0.

Y

若有说明intc;则while(c=getchar());没有语法错误

Y

do-while循环由do开始,while结束,循环体可能一次也不做。

N

for循环语句只能用于循环次数确定的情况下.

N

若有定义inta[10];则for(i=0;i<=10;i++)a[i]=i;编译时无语法错误.

Y

定义intx[5],n;则x=x+n;或x++;都是正确的.

N

二维数组在内存中存贮时,是按列的顺序连续存贮各元素的值.

N

变量根据其作用域的范围可以分作局部变量和全局变量.

Y

通过return语句,函数可以带回一个或一个以上的返回值。

N

函数的返回值可以通过函数中的return语句获得。

Y

若有宏定义:

#defineS(a,b)t=a;a=b;b=t由于变量t没定义,

所以此宏定义是错误的。

N

定义inta[]={1,2,3,4},y,*p=&a[1];,则执行y=(*--p)++后,y的值是2.

N

一个共用体变量中可以同时存放其所有成员.

N

用fopen("file","r+");打开的文件"file"可以进行修改。

Y

若有定义:

charc='\010';则变量C中包含的字符个数为_____.

【参考答案】

1

getchar()函数只能接收一个_____.

【参考答案】

字符

执行下列语句后,b的十进制值是_____.

intx=240,y=15,b;

charz='A';

b=((x&&y)&&(z<'a'));

【参考答案】

1

设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是_____.

for(x=0,y=0;y!

=123&&x<3;x++)

scanf("%d",&y);

【参考答案】

3

C语言中,数组名是一个不可变的_____常量,不能对它进行加减和赋值运算.

【参考答案】

指针

地址

函数调用语句func((e1,e2),(e3,e4,e5))中含有_____个实参.

【参考答案】

2

定义int*p,a[5];将数组a的首地址赋给指针变量p的语句是_____.

【参考答案】

p=a

p=&a[0]

p=a;

p=&a[0];

结构体是不同数据类型的数据集合,作为数据类型,必须先说明结构体_____,再说明结构体变量.

【参考答案】

类型

/*--------------------------------------------------------------

【程序设计】

----------------------------------------------------------------

功能:

编写函数sum(intm,intn),求出m~n之间(包括m和n,m

被3和5整除的数的和,并将这些数的和作为返回值。

---------------------------------------------------------------*/

#include"stdio.h"

intsum(intm,intn)

{

/*********Begin**********/

 

 

/**********End**********/

}

main()

{

voidTestFunc();

intm=15,n=300;

printf("sum=%d\n",sum(m,n));

TestFunc();

}

voidTestFunc()

{

FILE*IN,*OUT;

inti,m,n;

IN=fopen("in.dat","r");

if(IN==NULL)

{

printf("OpenFileError");

return;

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{

printf("WriteFileError");

}

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

{fscanf(IN,"%d%d",&m,&n);

fprintf(OUT,"%d\n",sum(m,n));

}

fclose(IN);

fclose(OUT);

}

【参考代码】

inti,s=0;

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

if(i%3==0&&i%5==0)

s=s+i;

returns;

 

===============

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:

求5行5列矩阵的主、副对角线上元素之和。

注意,

两条对角线相交的元素只加一次。

例如:

主函数中给出的矩阵的两条对角线的和为45。

------------------------------------------------*/

#include"stdio.h"

#defineM5

intfun(inta[M][M])

{

/*********Begin**********/

/**********End**********/

}

voidTestFunc()

{

FILE*IN,*OUT;

intiIN[M][M],iOUT;

inti,j;

IN=fopen("in.dat","r");

if(IN==NULL)

{

printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{

printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");

}

{for(i=0;i

for(j=0;j

fscanf(IN,"%d",&iIN[i][j]);

iOUT=fun(iIN);

fprintf(OUT,"%d\n",iOUT);

}

fclose(IN);

fclose(OUT);

}

main()

{

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

inty;

y=fun(a);

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

TestFunc();

}

【参考代码】

ints=0;

inti;

for(i=0;i

s=s+a[i][i]+a[i][M-1-i];

s=s-a[(M-1)/2][(M-1)/2];

returns;

 

===============

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

功能:

输出Fabonacci数列的前20项,要求变量类型定义成浮点型,

输出时只输出整数部分,输出项数不得多于或少于20。

------------------------------------------------------*/

#include"stdio.h"

voidfun()

{

inti;

floatf1=1,f2=1,f3;

/**********ERROR**********/

printf("%8d",f1);

/**********ERROR**********/

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

{

f3=f1+f2;

/**********ERROR**********/

f2=f1;

/**********ERROR**********/

f3=f2;

printf("%8.0f",f1);

}

printf("\n");

}

main()

{

fun();

}

【改错1】错误

【学生答案】

printf("%8d",f1);

【参考答案】

printf("%8.0f",f1);

printf("%f",f1);

printf("%8f",f1);

 

============================================================

【改错2】错误

【学生答案】

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

【参考答案】

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

for(i=1;20>i;i++)

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

for(i=2;20>=i;i++)

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

for(i=1;19>=i;i++)

 

============================================================

【改错3】错误

【学生答案】

f2=f1;

【参考答案】

f1=f2;

 

============================================================

【改错4】错误

【学生答案】

f3=f2;

【参考答案】

f2=f3;

 

============================================================

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

功能:

求两数平方根之和,作为函数值返回。

例如:

输入12和20,输出结果是:

y=7.936238。

------------------------------------------------------*/

#include"stdio.h"

#include"conio.h"

#include"math.h"

/**********ERROR**********/

doublefun(double*a,*b)

{

doublec;

/**********ERROR**********/

c=sqr(a)+sqr(b);

/**********ERROR**********/

returna;

}

main()

{

doublea,b,y;

printf("Entera&b:

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

y=fun(&a,&b);printf("y=%f\n",y);

}

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

功能:

求两数平方根之和,作为函数值返回。

例如:

输入12和20,输出结果是:

y=7.936238。

------------------------------------------------------*/

#include"stdio.h"

#include"conio.h"

#include"math.h"

/**********ERROR**********/

doublefun(double*a,*b)

{

doublec;

/**********ERROR**********/

c=sqr(a)+sqr(b);

/**********ERROR**********/

returna;

}

main()

{

doublea,b,y;

printf("Entera&b:

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

y=fun(&a,&b);printf("y=%f\n",y);

}

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

题目:

求矩阵a的副对角线上元素之和。

-------------------------------------------------------*/

#include"stdio.h"

main()

{

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

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

/***********FILL***********/

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

/***********FILL***********/

if(_____)sum=sum+a[i][j];

printf("%3d",sum);

}

【空1】错误

【学生答案】

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

【参考答案】

j<3

j<=2

 

============================================================

【空2】错误

【学生答案】

if(_____)sum=sum+a[i][j];

【参考答案】

(i+j)==2

i+j==2

2==(i+j)

2==i+j

 

============================================================

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

题目:

下面的程序利用字符串处理函数实现对字符串的处理。

-------------------------------------------------------*/

#include"stdio.h"

/***********FILL***********/

_____

main()

{

chara[50]="abc",b[50]="ABC",*p1,*p2,str[50]="xyz";

p1=a;p2=b;

strcpy(str+2,strcat(p1,p2));

/***********FILL***********/

printf(_____,str);

}

【空1】错误

【学生答案】

_____

【参考答案】

#include

#include"string.h"

 

============================================================

【空2】错误

【学生答案】

printf(_____,str);

【参考答案】

"%s\n"

"%s"

 

============================================================

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1