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

上传人:b****3 文档编号:4738564 上传时间:2023-05-07 格式:DOCX 页数:233 大小:80.60KB
下载 相关 举报
大连理工大学C语言题库共12套.docx_第1页
第1页 / 共233页
大连理工大学C语言题库共12套.docx_第2页
第2页 / 共233页
大连理工大学C语言题库共12套.docx_第3页
第3页 / 共233页
大连理工大学C语言题库共12套.docx_第4页
第4页 / 共233页
大连理工大学C语言题库共12套.docx_第5页
第5页 / 共233页
大连理工大学C语言题库共12套.docx_第6页
第6页 / 共233页
大连理工大学C语言题库共12套.docx_第7页
第7页 / 共233页
大连理工大学C语言题库共12套.docx_第8页
第8页 / 共233页
大连理工大学C语言题库共12套.docx_第9页
第9页 / 共233页
大连理工大学C语言题库共12套.docx_第10页
第10页 / 共233页
大连理工大学C语言题库共12套.docx_第11页
第11页 / 共233页
大连理工大学C语言题库共12套.docx_第12页
第12页 / 共233页
大连理工大学C语言题库共12套.docx_第13页
第13页 / 共233页
大连理工大学C语言题库共12套.docx_第14页
第14页 / 共233页
大连理工大学C语言题库共12套.docx_第15页
第15页 / 共233页
大连理工大学C语言题库共12套.docx_第16页
第16页 / 共233页
大连理工大学C语言题库共12套.docx_第17页
第17页 / 共233页
大连理工大学C语言题库共12套.docx_第18页
第18页 / 共233页
大连理工大学C语言题库共12套.docx_第19页
第19页 / 共233页
大连理工大学C语言题库共12套.docx_第20页
第20页 / 共233页
亲,该文档总共233页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

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

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

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

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

2665944699【第一套】

一、单项选择

1.下列数据中,为字符串常量的是(d)。

A、'A'

B、Howdoyoudo.

C、$abc

D、"house"

 

2.以下所列的C语言常量中,错误的是(b)。

A、0xFF

B、1.2e0.5

C、2L

D、'\72'

 

3.以下程序的输出结果是(d)。

main()

{floatx=3.6;

 int i;

 i=(int)x;

 printf("x=%f,i=%d\n",x,i);

}

A、x=3.600000,i=4

B、x=3i=3.600000

C、x=3,i=3

D、x=3.600000,i=3

 

4.若k是整型,则以下程序段的执行结果是:

(b)

 k=-3;

 if(k<=0)printf("####")

 elseprintf("&&&&");

A、####

B、有语法错误,无结果

C、&&&&

D、####&&&&

 

5.若x=2,y=3则x||y的结果是(c)。

A、3

B、0

C、1

D、2

 

6.针对下列程序段回答问题(b).

for(t=1;t<=100;t++)

{

 scanf("%d",&x);

 if(x<0)continue;

 printf("%3d",t);

}

A、x>=0时什么也不输出

B、最多允许输出100个非负整数

C、printf函数永远也不执行

D、当x<0时整个循环结束

 

7.以下程序的执行结果是(b)。

 main()

 { int num=0;

   while(num<=2){ num++; printf("%d,",num);}  }

A、0,1,2

B、1,2,3,

C、1,2,3,4,

D、1,2,

 

8.选择正确的输入语句(d)。

:

(其中:

charstring[20];)使得string的内容为"Iamstudent".

A、scanf("%s",string);

B、scanf("%c",&string);

C、scanf("%s",&string);

D、gets(string);

 

9.对以下说明语句 inta[10]={6,7,8,9,10}; 的正确理解是(b)。

A、将5个初值依次赋给a[6]至a[10]

B、将5个初值依次赋给a[0]至a[4]

C、因为数组长度与初值的个数不相同,所以此语句不正确

D、将5个初值依次赋给a[1]至a[5]

 

10.以下标识符中可以作为用户函数名的是( d).

A、struct

B、int

C、union

D、go_to

 

11.以下叙述错误的是( b).

A、函数调用可以出现在一个表达式中

B、函数调用可以作为一个函数的形参

C、函数调用可以作为一个函数的实参

D、函数允许递归调用

 

12.若用数组名作为函数的实参,传递给形参的是(b)。

A、数组第一个元素的值

B、数组的首地址

C、数组元素的个数

D、数组中全部元素的值

 

13.在C语言程序中(b)。

A、函数的定义可以嵌套,但函数的调用不可以嵌套

B、函数的定义不可以嵌套,但函数的调用可以嵌套

C、函数的定义和函数调用不可以嵌套

D、函数的定义和函数调用均可以嵌套

 

14.下列说法中正确的是(b).

A、函数调用不占运行时间,只占编译时间.

B、宏替换不占运行时间,只占编译时间.

C、有参数的宏定义,就是函数.

D、在定义宏时,宏名与带参数的括弧之间可以加空格.

 

15.若有说明:

int*p,m=5,n;以下正确的程序段是(d)。

A、scanf("%d",&n);*p=n;

B、p=&n;scanf("%d",*p)

C、p=&n;scanf("%d",&p);

D、p=&n;scanf("%d",p);

 

16.对于下述定义,不正确的叙述是(b).

uniondata

{inti;

charc;

floatf;

}a,b;

A、变量a的地址和它的各成员地址都是相同的

B、可以在定义类型的同时定义变量a,并对a的任意成员初始化

C、变量a所占内存的长度等于成员f的长度

D、如果有定义语句uniondataa={6};则对变量a的初始化是正确的

 

17.有两个整型变量dog和cat,若要从磁盘文件把数据读到其中,

正确的形式是(b).

A、fscanf(dog,2,1,fp);

B、fscanf(fp,"%d%d",&dog,&cat);

C、fscanf(dog,cat,2,1,fp);

D、fscanf(fp,"%d",&dog,&cat);

 

DBDBCBBDBDBBBBDBB

 

二、判断

1.若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变

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

3.条件表达式x?

'a':

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

4.在逻辑运算符中的运算级别由高向低依次为&&->||->!

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

6.continue语句用于终止循环体的本次执行.

7.若有定义和语句:

inta[3][3]={{3,5},{8,9},{12,35}},i,sum=0;

for(i=0;i<3;i++)sum+=a[i][2-i];则sum=21.

8.inta[3][4]={{1},{5},{9}};它的作用是将数组各行第一列的元素赋初值,其余元素值为0。

9.定义一维数组的形式为:

类型说明 数组名[表达式],其中表达式可以是正整型常量表达式、字符常量表达式.

10.在C语言中,函数名代表函数的入口地址.

11.函数调用语句:

func(rec1,rec2+rec3,(rec4,rec5));中,含有的实参个数是5.

12.数组名可以作为函数的实参和形参.

13.一个include命令只能指定1个被包含的文件。

14.若p为指针变量,a为数组名,则a-p是合法的表达式.

15.在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量。

16.C语言中,关闭一个文件就删除了这个文件.

 

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

 

三、填空

1.已知floati=5.6;inta;写出语句a=(int)i;执行后变量i的值是_5.6____.

2.设有intx=11,则表达式(x++*1/3)的值是___3__。

3.若intx=6;则x+=x-=x*x表达式最后x的值是__-60___.

4.设x=2&&2||5>1,x的值为__1___.

5.连接字符串的函数是_____,只写函数名即可.

6.函数不可以进行嵌套定义,但可以进行嵌套_____.

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

structstud{shortintage;charnum[3]; floats[2]; doubleave;}b,*p;

8.若有fp=fopen("a1.dat","r+")打开文件语句,这个文件的数据是以_____的形式存放在内存中,该文件的使用方式为读/_____。

  

5.6  3  -60  1  strcat  调用  21  ASCII码或ASCII文本

 

四、程序设计

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

【程序设计】

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

功能:

输入n个数,并求出小于平均值的数的个数。

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

 

#include"stdio.h"

 

intaverage_num(inta[],intn)

{

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

 

 

 

 

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

}

 

main()

{

 intn,a[100],i,num;

 voidTestFunc();

 scanf("%d",&n);

 for(i=0;i

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

 num=average_num(a,n);

 printf("thenumis:

%d\n",num);

 TestFunc();

}

 

voidTestFunc()

{

 FILE*IN,*OUT;

 intn;

 inti[10];

 into;

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

 if(IN==NULL)

 {

   printf("ReadFileError");

 }

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

 if(OUT==NULL)

 {

   printf("WriteFileError");

 }

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

 {   

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

 }

 o=average_num(i,5);

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

 fclose(IN);

 fclose(OUT);

}

 

【参考代码】

 

inti,sum=0,k=0;

   doubleaverage;

   for(i=0;i

     sum=sum+a[i];

   average=sum*1.0/n;

   for(i=0;i

     if(average>a[i])k++;

return(k);

 

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

  

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

【程序设计】

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

功能:

从字符串中删除指定的字符。

同一字母的大、小写按不同字符处理。

例如:

若程序执行时输入字符串为:

turbocandborlandc++从键盘上输入字符:

n,则输出后变为:

turbocadborladc++,如果输入的字符在字符串中不存在,则字符串照原样输出。

 

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

#include"stdio.h"

 

voidfun(chars[],charc)

{

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

 

 

 

 

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

 

}

 

voidTestFunc()

{

 FILE*IN,*OUT;

 chari[200];

 /*charo[200];*/

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

 if(IN==NULL)

 {

   printf("ReadFileError");

 }

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

 if(OUT==NULL)

 {

   printf("WriteFileError");

 }

 fscanf(IN,"%s",i);

 fun(i,'n');

 fprintf(OUT,"%s",i);

 fclose(IN);

 fclose(OUT);

}

   

main()    

{    

 staticcharstr[]="turbocandborlandc++";

 charch;    

 printf("原始字符串:

%s\n",str);    

 printf("输入一个字符:

");    

 scanf("%c",&ch);    

 fun(str,ch);    

 printf("str[]=%s\n",str);

 TestFunc();    

}

 

【参考代码】

 

char*q=s;    

for(;*q;q++)    

if(*q!

=c)*(s++)=*q;    

*s=0;

 

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

 

五、程序改错

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

【程序改错】

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

功能:

依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。

例如:

输入ab12c3d,则输出123。

注意:

不得增行或删行,也不得更改程序的结构!

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

#include"stdio.h"

 

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

voidfun(chars)  

{

   inti,j;

   for(i=0,j=0;s[i]!

='\0';i++)

       if(s[i]>='0'&&s[i]<='9')

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

           s[j]=s[i]; 

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

   s[j]="\0"; 

}

 

main()

{

   charitem[80];

   printf("\nEnterastring:

");

   gets(item);

   printf("\n\nThestringis:

\"%s\"\n",item);

   fun(item);

   printf("\n\nThestringofchangingis:

\"%s\"\n",item);

}

 

【改错1】

【学生答案】

voidfun(chars)  

 

【参考答案】

voidfun(char*s)

voidfun(chars[])

voidfun(chars[80])

 

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

 

【改错2】

【学生答案】

s[j]=s[i]; 

 

【参考答案】

s[j++]=s[i];

 {s[j]=s[i]; j++;}

 

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

 

【改错3】

【学生答案】

s[j]="\0"; 

 

【参考答案】

s[j]='\0';

 

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

 

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

【程序改错】

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

功能:

读入一个整数m(5≤m≤20),函数rnd获得m个随机整数,函数sortpb将这m个随机整数从小到大排序。

例如:

若输入整数7,则应输出:

3101728323647。

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

 

#include"conio.h"

#include"stdio.h"

 

voidsortpb(intn,inta[])

{

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

 inti,j,p;

 for(j=0;j

 {

   p=j;

   for(i=j+1;i

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

   if(a[p]>a[j])p=i;

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

   if(p==j)

   {

     t=a[j];

     a[j]=a[p];

     a[p]=t;

   }

 }

}

 

voiddoublernd()

{

 statict=29,c=217,m=1024,r=0;

 r=(r*t+c)%m;return((double)r/m);

}

 

voidgetarr(intn,int*x)

{

 inti;

 for(i=1;i<=n;i++,x++)*x=(int)(50*rnd());

}

 

voidputarr(intn,int*z)

{

 inti;

 for(i=1;i<=n;i++,z++)

 {

   printf("%4d",*z);

   if(!

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

 }

 printf("\n");

}

 

main()

{

 intaa[20],n;

 

 printf("\nPleaseenteranintegernumberbetween5and20:

");

 scanf("%d",&n);

 getarr(n,aa);

 printf("\n\nBeforesorting%dnumbers:

\n",n);putarr(n,aa);

 sortpb(n,aa);

 printf("\nAftersorting%dnumbers:

\n",n);putarr(n,aa);

 

}

【改错1】

【学生答案】

inti,j,p;

 

【参考答案】

inti,j,p,t;

 

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

 

【改错2】

【学生答案】

if(a[p]>a[j])p=i;

 

【参考答案】

if(a[p]>a[i])p=i;

if(a[i]

 

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

 

【改错3】

【学生答案】

if(p==j)

 

【参考答案】

if(p!

=j)

 

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

 

六、程序填空

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

【程序填空】

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

功能:

计算矩阵a的下三角(包含主对角线)元素之积,矩阵的行、列数和元素值均由键盘输入。

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

 

#defineM10

#include"stdio.h"

intmain()

{

 inti,j,n,a[M][M];

 longs=1;

 scanf("%d",&n);

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

 for(_________)

   for(j=0;j

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

 for(i=0;i

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

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

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

    s=_________;

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

return0;

}

 

【空1】 

【学生答案】

for(_________)

 

【参考答案】

i=0;i

i=0;i

 

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

 

【空2】 

【学生答案】

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

 

【参考答案】

j<=i

i>=j

(i+j)>(n-1)&&j

(j+i)>(n-1)&&j

 

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

 

【空3】 

【学生答案】

s=_________;

 

【参考答案】

s*a[i][j]

a[i][j]*s

 

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

 

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

【程序填空】

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

题目:

本程序的功能是从10个数中找出其中的最大值,完善程序。

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

#include"stdio.h"

main()

{

   inta[10],i,*pmax;

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

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

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

   pmax=_____;

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

   if(a[i]>*pmax)pmax=&a[i];

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

   printf("%d",_____);

}

 

【空1】

【学生答案】

pmax=_____;

 

【参考答案】

pmax=&a[0]

pmax=a

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

当前位置:首页 > PPT模板 > 商务科技

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

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