大连理工大学c语言题库共12套.docx

上传人:b****5 文档编号:7089888 上传时间:2023-01-17 格式:DOCX 页数:173 大小:69.40KB
下载 相关 举报
大连理工大学c语言题库共12套.docx_第1页
第1页 / 共173页
大连理工大学c语言题库共12套.docx_第2页
第2页 / 共173页
大连理工大学c语言题库共12套.docx_第3页
第3页 / 共173页
大连理工大学c语言题库共12套.docx_第4页
第4页 / 共173页
大连理工大学c语言题库共12套.docx_第5页
第5页 / 共173页
点击查看更多>>
下载资源
资源描述

大连理工大学c语言题库共12套.docx

《大连理工大学c语言题库共12套.docx》由会员分享,可在线阅读,更多相关《大连理工大学c语言题库共12套.docx(173页珍藏版)》请在冰豆网上搜索。

大连理工大学c语言题库共12套.docx

大连理工大学c语言题库共12套

 

【第三套】

一、单项选择

1.以下程序段char*alp[]={"ABC","DEF","GHI"};

           intj;puts(alp[1]);

          的输出结果是()。

A、D

B、A

C、B

D、DEF

 

2.下列表达式中,可作为C合法表达式的是()。

A、3.0%2

B、3=2=1=0

C、[3,2,1,0]

D、(3,2,1,0)

 

3.下面程序的正确输出结果是().(规定用U表示空格)

main()

{

 float x=5.783,y=-10.2345; 

 printf("x=%-8.2f,y=%-8.2f\n",x,y);

}

A、x=5.78UUUU,y=-10.23UU

B、x=5.78,y=-10.23

C、5.78,-10.23

D、x=UUUU5.78,y=UU-10.23

 

4.当x为偶数或奇数时(0除外),其值都为0的表达式是:

()

A、(x/2*2-x)==0

B、x%2==0

C、!

x!

=0

D、!

(x%2)

 

5.下列运算符优先级最低的是().

A、=

B、+

C、!

D、&&

 

6.设有如下程序段:

 intk=10;

 while(k==0)

 k--;

则下述说明中正确的是().

A、循环体一次也不执行

B、循环体执行一次

C、死循环

D、循环体执行10次

 

7.从循环体内某一层跳出,继续执行循环外的语句是()。

A、continue语句

B、空语句

C、break语句

D、return语句

 

8.以下对一维整型数组a的正确说明是()。

A、inta(10);

B、intn;scanf("%d",&n);inta[n];

C、intn=10,a[n];

D、#defineSIZE10 (换行) inta[SIZE];

 

9.以下定义语句中,错误的是()。

A、intn=5,a[n];

B、inta[]={1,2};

C、chars[10]="test";

D、char*a[3];

 

10.下面叙述中不正确的是().

A、可以对字符型数组进行整体输入和输出.

B、不可以对浮点型数组进行整体输入和输出.

C、可以对整型数组进行整体输入和输出.

D、字符型数组可以存放字符串.

 

11.函数定义时的参数为形参,调用函数时所用的参数为实参,则下列描述正确的是().

A、实参与形参是双向传递

B、形参可以是表达式

C、形参和实参可以同名

D、实参类型一定要在调用时指定

 

12.以下错误的描述是:

函数调用可以()。

A、出现在执行语句中

B、做为一个函数的实参

C、出现在一个表达式中

D、做为一个函数的形参

 

13.以下不正确的说法是:

C语言规定()。

A、实参可以是常量,变量或表达式

B、实参可以为任何类型

C、形参可以是常量,变量或表达式

D、形参应与其对应的实参类型一致

 

14.下列形式,不属于编译预处理命令的是().

A、#ifdef   M

B、#undef   M

C、#if (M>1)

D、while  (M>1)

 

15.下面判断正确的是()。

A、charc[4]="abc",d[4]="abc";等价于charc[4]=d[4]="abc";

B、charstr[10]={"china"};等价于charstr[10];str[]={"china"};

C、char*a="china";等价于char*a;*a="china";

D、char*s="china";等价于char*s;s="china";

 

16.若有以下结构体定义:

structexample

{intx;

 inty;

}v2;

则()是正确的引用或定义.

A、example.x=10;

B、structv2;v2.x=10;

C、examplev2;v2.x=10;

D、structexamplev2={10,3};

 

17.若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数

feof(fp)的值为()。

A、-1

B、1

C、一个非0值

D、0

 

DDACAACDACCDCDDDD

 

二、判断

1.如果有一个字符串,其中第十个字符为'\n',则此字符串的有效字符为9个

2.格式字符%o用来以十六进制形式输出整数

3.已知a=3,b=4,c=5,则逻辑表达式!

(a>b)&&!

c||1的值为1.

4.已知x=2,y=2,执行分支语句if(x==y)y=1; elsey=-1;后,y=-1.

5.continue语句对于while和do-while循环来说,意味着转去计算While表达式.

6.在do-while循环中,根据情况可以省略while.

7.对于字符数为n个的字符串,其占用的内存为n+1个字节空间.

8.puts函数用来输出一个字符.

9.引用数组元素时,下标可以是整型表达式或整型常量.

10.函数调用结束后,静态局部变量所占用的空间被释放.

11.在一个函数中定义的静态局部变量可以被另一个函数调用.

12.当全局变量与局部变量同名时,在局部变量的作用域范围之内,全局变量起作用.

13.计算机编译系统对宏定义在编译时进行语法检查.

14.若定义intarray[5],*p;则赋值语句p=array;是正确的.

15.共同体变量所占的内存长度等于最长的成员的长度。

16.C语言中,打开一个文件就意味着产生了一个文件.

 

错错对错对错对错对错错错错对对错

 

三、填空

1.设x的值为15,n的值为2,则表达式x%=(n+=3)运算后x的值是_____.

2.已知a=-13,b=6, a%b的十进制数值为_____.

3.已知a=12,写出表达式0

4.已知i=5,写出语句a=(i>5)?

0:

1;执行后整型变量a的值是_____.

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

6.C语言中一个函数由函数首部和_____两部分组成.

7.设有以下共用体类型说明和变量定义,则变量c在内存所占字节数是_____。

unionstud{shortintnum;charname[10];floatscore[5]; doubleave;}c;

8.在C语言中,关闭文件即是文件指针不再指向该_____.

 

0  -1  0  1  指针或地址  函数体  20  文件

 

四、程序设计

1./*------------------------------------------------

【程序设计】

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

 

功能:

计算并输出给定整数n的所有因子之和(不包括1与

     自身)。

注意:

n的值不大于1000。

例如:

n的值为855时,应输出704。

 

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

 

#include"stdio.h"

 

intfun(intn)

{

 

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

 

 

 

 

 

 

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

 

}

voidTestFunc()

{

 FILE*IN,*OUT;

 intiIN,iOUT,i;

 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<5;i++)

 {

   fscanf(IN,"%d",&iIN);

   iOUT=fun(iIN);

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

 }

 fclose(IN);

 fclose(OUT);

}

main()

{

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

 TestFunc();

}

 

【参考代码】

 

ints=0,i;

  for(i=2;i

   if(n%i==0)s=s+i;

    returns;

 

 

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

 

2./*------------------------------------------------------

【程序设计】

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

功能:

删去一维数组中所有重复的数,只保留不同的数。

数组中的数已按由小到大的顺序排列,

函数返回删除后数组中数据的个数。

例如:

一维数组中的数据是:

2223445666677899101010。

删除后,数组中的内容应该是:

2345678910。

注意:

请勿改动主函数main和其它函数中的任何内容。

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

#include"stdio.h"

#defineN80

 

intfun(inta[],intn)

{

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

  

 

 

 

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

}

 

main()

{

   voidTestFunc();

   inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10},i,n=20;

   printf("Theoriginaldata:

\n");

   for(i=0;i

   n=fun(a,n);

   printf("\n\nThedataafterdeleted:

\n");

   for(i=0;i

   printf("\n\n");

   TestFunc();

}

 

voidTestFunc()

{

   FILE*IN,*OUT;

   inta[N];

   intn;

   inti;

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

   if(IN==NULL)

   {

       printf("ReadFileError");

   }

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

   if(OUT==NULL)

   {

       printf("WriteFileError");

   }

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

   for(i=0;i

   n=fun(a,n);

   for(i=0;i

   fclose(IN);

   fclose(OUT);

}

 

 

【参考代码】

 inti,j=1,k=a[0];

   for(i=1;i

       if(k!

=a[i])

       {

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

           k=a[i];

       }

   a[j]=0;

   returnj;

 

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

 

 

五、程序改错

1./*------------------------------------------------------

【程序改错】

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

函数fun的功能是:

求1到20的阶乘的和。

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

#include"stdio.h"

main()

{

 intn,j;

 floats=0.0,t=1.0;

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

 {       

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

   s=1;

   for(j=1;j<=n;j++)

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

     t=t*n;

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

   s+t=s;

 }

 printf("jiecheng=%f\n",s);

}

 

【改错1】

【学生答案】

s=1;

 

【参考答案】

 t=1;

t=1.0;

 

 

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

 

【改错2】

【学生答案】

t=t*n;

 

【参考答案】

t=t*j;

t*=j;

t=j*t;

 

 

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

 

【改错3】

【学生答案】

s+t=s;

 

【参考答案】

s=s+t;

s+=t;

s=t+s;

 

 

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

 

 

2./*------------------------------------------------------       

【程序改错】

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

 

功能:

实现两个字符串的连接。

例如:

输入dfdfqe和12345时,则输出dfdfqe12345.

 

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

 

#include"stdio.h"

main()

{

 chars1[80],s2[80];

 voidscat(chars1[],chars2[]);

 gets(s1);

 gets(s2);

 scat(s1,s2);

 puts(s1);

}

 

voidscat(chars1[],chars2[])

{

 inti=0,j=0;

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

 while(s1[i]=='\0')i++;

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

 while(s2[j]=='\0')

 {

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

   s2[j]=s1[i];

   i++;

   j++;

 }

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

 s2[j]='\0';

}

【改错1】

【学生答案】

while(s1[i]=='\0')i++;

 

【参考答案】

while(s1[i]!

='\0')i++;

while(s1[i])i++;

while(s1[i]!

=NULL)i++;

while(s1[i]!

=0)i++;

 

 

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

 

【改错2】

【学生答案】

while(s2[j]=='\0')

 

【参考答案】

while(s2[j]!

='\0')

while(s2[j])

while(s2[j]!

=NULL)

while(s2[j]!

=0)

 

 

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

 

【改错3】

【学生答案】

s2[j]=s1[i];

 

【参考答案】

s1[i]=s2[j];

 

 

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

 

【改错4】

【学生答案】

s2[j]='\0';

 

【参考答案】

s1[i]='\0';

s1[i]=NULL;

*(s1+i)='\0';

s1[i]=0;

 

 

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

 

 

 

六、程序填空

1./*-------------------------------------------------------

【程序填空】

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

 

功能:

打印以下图形。

 

*****

 *****

 *****

  *****

   *****

 

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

#include"stdio.h"

main()

{

 

 chara[5][9]={"    "};

 inti,j;

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

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

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

   a[i][j]='*';

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

 for(_____;i<5;i++)

 {

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

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

   printf("%c",_____);

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

   _____;

  }

 }

【空1】 

【学生答案】

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

 

【参考答案】

j

i+5>j

j<=i+4

i+4>j

j<5+i

 

 

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

 

【空2】 

【学生答案】

for(_____;i<5;i++)

 

【参考答案】

i=0

 

 

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

 

【空3】 

【学生答案】

printf("%c",_____);

 

【参考答案】

a[i][j]

 

 

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

 

【空4】 

【学生答案】

_____;

 

【参考答案】

printf("\n")

 

 

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

 

 

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

【程序填空】                                 

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

功能:

计算n门课程的平均分。

例如:

若有5门课程的成绩是:

90.5,72,80,61.5,55

则函数的值为:

71.80。

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

#include

floatfun(float*a,intn)

{

   inti;

floatave=0.0;

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

for(i=0;________;i++)

ave=ave+a[i];

ave=ave/n;

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

_________;

}

 

intmain()

{

floatscore[30]={90.5,72,80,61.5,55},aver;

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

   aver=fun(_______,5);

printf("\nAveragescoreis:

%5.2f\n",aver);

return0;

}

 

【空1】 

【学生答案】

for(i=0;________;i++)

 

【参考答案】

i

n>i

 

 

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

 

【空2】 

【学生答案】

_________;

 

【参考答案】

returnave;

 

 

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

 

【空3】 

【学生答案】

aver=fun(_______,5);

 

【参考答案】

score

 

 

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

 

 

 

 

【第四套】

一单选

1sizeof(float)是()。

A、一个浮点表达式

B、一个不合法的表达式

C、运算结果是一个整型表达式。

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

当前位置:首页 > 自然科学 > 生物学

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

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