大连理工大学C语言题库共12套Word文档格式.docx
《大连理工大学C语言题库共12套Word文档格式.docx》由会员分享,可在线阅读,更多相关《大连理工大学C语言题库共12套Word文档格式.docx(233页珍藏版)》请在冰点文库上搜索。
D、2
6.针对下列程序段回答问题(b).
for(t=1;
t<
=100;
t++)
{
scanf("
%d"
&
x);
if(x<
0)continue;
%3d"
t);
A、x>
=0时什么也不输出
B、最多允许输出100个非负整数
C、printf函数永远也不执行
D、当x<
0时整个循环结束
7.以下程序的执行结果是(b)。
main()
{
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("
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)。
n);
*p=n;
B、p=&
n;
scanf("
*p)
C、p=&
p);
D、p=&
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,"
DBDBCBBDBDBBBBDBB
二、判断
1.若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变
2.charc[6]="
abcde"
;
%3s"
c)表示输出的字段的宽度,如果被输出的数据的位数大于3,按实际位数输出.
3.条件表达式x?
'
a'
b'
中,若x=0时,表达式的值为'
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
**********/
intn,a[100],i,num;
voidTestFunc();
for(i=0;
i++)
a[i]);
num=average_num(a,n);
thenumis:
%d\n"
num);
TestFunc();
voidTestFunc()
FILE*IN,*OUT;
intn;
inti[10];
into;
IN=fopen("
in.dat"
r"
if(IN==NULL)
{
ReadFileError"
OUT=fopen("
out.dat"
w"
if(OUT==NULL)
WriteFileError"
for(n=0;
n<
5;
n++)
fscanf(IN,"
i[n]);
o=average_num(i,5);
fprintf(OUT,"
o);
fclose(IN);
fclose(OUT);
【参考代码】
inti,sum=0,k=0;
doubleaverage;
sum=sum+a[i];
average=sum*1.0/n;
if(average>
a[i])k++;
return(k);
===============
2./*------------------------------------------------
从字符串中删除指定的字符。
同一字母的大、小写按不同字符处理。
例如:
若程序执行时输入字符串为:
turbocandborlandc++从键盘上输入字符:
n,则输出后变为:
turbocadborladc++,如果输入的字符在字符串中不存在,则字符串照原样输出。
voidfun(chars[],charc)
/*********Begin**********/
**********/
chari[200];
/*charo[200];
*/
i);
fun(i,'
n'
main()
{
staticcharstr[]="
turbocandborlandc++"
charch;
原始字符串:
%s\n"
str);
输入一个字符:
ch);
fun(str,ch);
str[]=%s\n"
str);
char*q=s;
for(;
*q;
q++)
if(*q!
=c)*(s++)=*q;
*s=0;
五、程序改错
1./*---------------------------------------------------
【程序改错】
--------------------------------------------------------
依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。
输入ab12c3d,则输出123。
注意:
不得增行或删行,也不得更改程序的结构!
------------------------------------------------------*/
/**********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];
s[j]="
\0"
charitem[80];
\nEnterastring:
"
gets(item);
\n\nThestringis:
\"
%s\"
\n"
item);
fun(item);
\n\nThestringofchangingis:
【改错1】
【学生答案】
【参考答案】
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]="
s[j]='
=====================================
/*------------------------------------------------------
读入一个整数m(5≤m≤20),函数rnd获得m个随机整数,函数sortpb将这m个随机整数从小到大排序。
若输入整数7,则应输出:
3101728323647。
conio.h"
voidsortpb(intn,inta[])
inti,j,p;
for(j=0;
j<
n-1;
j++)
p=j;
for(i=j+1;
i<
n;
i++)
if(a[p]>
a[j])p=i;
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;
=n;
i++,x++)*x=(int)(50*rnd());
voidputarr(intn,int*z)
i++,z++)
%4d"
*z);
if(!
(i%10))printf("
);
intaa[20],n;
\nPleaseenteranintegernumberbetween5and20:
scanf("
n);
getarr(n,aa);
\n\nBeforesorting%dnumbers:
n);
putarr(n,aa);
sortpb(n,aa);
\nAftersorting%dnumbers:
inti,j,p;
inti,j,p,t;
if(a[p]>
a[i])p=i;
if(a[i]<
a[p])p=i;
if(p==j)
if(p!
=j)
六、程序填空
1./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
计算矩阵a的下三角(包含主对角线)元素之积,矩阵的行、列数和元素值均由键盘输入。
-------------------------------------------------------*/
#defineM10
intmain()
inti,j,n,a[M][M];
longs=1;
/***********FILL***********/
for(_________)
for(j=0;
j<
j++)
a[i][j]);
_______;
s=_________;
%ld\n"
s);
return0;
【空1】
for(_________)
i=0;
i++
i=i+1
【空2】
for(j=0;
=i
i>
=j
(i+j)>
(n-1)&
n
(j+i)>
【空3】
s=_________;
s*a[i][j]
a[i][j]*s
/*-------------------------------------------------------
---------------------------------------------------------
题目:
本程序的功能是从10个数中找出其中的最大值,完善程序。
inta[10],i,*pmax;
10;
/***********FILL***********/
pmax=_____;
for(i=1;
if(a[i]>
*pmax)pmax=&
a[i];
_____);
【空1】
pmax=_____;
pmax=&
a[0]
pmax=a