《2015年最新电大本科C语言程序设计A小抄.doc》由会员分享,可免费在线阅读全文,更多与《2015年最新电大本科C语言程序设计A小抄.doc》相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜索。
1、函
数为(B)。
Agets()Bfgets()
Cgetc()Dfgetc()
程序运行中需要从键盘上输入多于一个数据时,各数据之间默
认使用(D)符号作为分隔符。
A空格或逗号B逗号或回车
C逗号或分号D空格或回车
逻辑表达式(xgtamamxlt=)的相反表达式为(A)。
Axlt=||xgtBxlt=amamxgt
Cxlt=||xlt=Dxgtamamxgt
当处理特定问题时的循环次数已知时,通常采用(A)循环来
解决。
AforBwhileCdowhileDswitch
假定i的初值为,则在循环语句“while(iltn){s+=i*i;
i++;}”中循环体被执行的总次数为(B)。
AnBnCn+Dn
假定一个二维数组的定义语句为“int
a[][]={{,},{,,}};”,则元素a[][]的值为(C)。
ABCD
在下列选项中,不正确的函数原型格式为(C)。
AintFunction(inta);BvoidFunction(char);
CintFunction(a);Dvoidint(double*a);
假定是一个指向float型数据的指针,则+所指数据
的地址比所指数据的地址大(C)个字节。
ABCD
假定有定义为“intm=,*;”,则给赋值的正确表达
式为(B)。
A=mB=a。
2、果:
includeltstdiohgt
voidmain(){
intx=;
inti=;
while(iltx){
if(x%i==){rintf(quot%dquot,i);x=i;}
i++;}}
运行结果:
includeltstdiohgt
voidmain(){
inta[]={,,,,,,,};
inti,s=;
for(i=;ilt;i++)
if(a[i]gt=amama[i]lt=)s+=a[i];
rintf(quots=%d\nquot,s);}
运行结果:s=
includeltstdiohgt
intWF(intx,inty){
x=x+y;
y+=x;
returnx+y;}
voidmain(){
intx=,y=;
rintf(quot%d\nquot,WF(x,y));}
运行结果:
includeltstdiohgt
intLA(int*a,intn){
inti,s=O;
for(i=O;iltn;i++)s+=a[i];
returns;}
voidmain(){
inta[]={,,,,};
intb=LA(a,)+LA(a+,);
rintf(quotb=%d\nquot,b);}
运行结果:b=
四、写出下列每个函数的功。
3、)。
AmainBMAINCnameDfunction
每个C语言程序文件的编译错误分为(B)类。
ABCD
字符串quota+b=\nquot的长度为(B)。
ABCD
在switch语句的每个case块中,假定都是以eak语句
结束的,则此switch语句容易被改写为(D)语句。
AforBwhileCdoDif
在下面的dowhile循环语句中,其循环体语句被执行的次
数为(C)。
inti=;doi++;while(ilt);
ABCD
将两个字符串连接起来组成一个字符串时,选用的字符串
函数为(C)。
Astrlen()Bstrcy()
Cstrcat()Dstrcm()
若用数组名作为函数调用的实参,传递给形参的是(A)。
A数组的首地址B数组中第一个元素的值
C数组中全部元素的值D数组元素的个数
假定a为一个整数类型的数组名,整数类型的长度为,
则元素a[]的地址比a数组的首地址大(C)个字节。
ABCD
假定s被定义为指针类型char*的变量,初始指向的字符
串为quotHelloworld!quot,若要使变量指向s所指向的字符串,则
应定义为(A)。
Achar*=s;Bchar*=ams;
Cchar*;=*s;Dchar*;=ams;
从一个数据文件中读入以换行符结束的一行字符串的。
4、ar*)。
NULL是一个符号常量,通常作为空指针值,它对应的值为。
假定要动态分配一个类型为structWorker的对象,并由r指
针指向这个对象,则使用的表达式为structWorker*r
=malloc(sizeof(structWorker))。
在一个C语言程序文件中,若要包含另外一个头文件或程序文
件,则应使用的预处理命令为include。
用于从键盘上为变量输入值的标准输入函数的函数名为
scanf。
假定一个枚举类型的定义为“enumRA{ab,ac,ad,ae};”,则
ac的值为_。
double类型的长度为__。
执行“intx=,y=;rintf(quot%dquot,xy);”语句序列后得到
的输出结果为__。
表达式x=x+y表示成复合赋值表达式为x+=y。
假定x=,则执行“a=(!x?:);”语句后a的值为__。
假定一维字符指针数组的定义为“char*a[];”,则该数组占
用的存储空间的字节数为__。
假定e,xay);}
运行结果:liouting
includeltstdiohgt
voidmain(){
inti,j,k==;
for({i=O;ilt;i++)
for(j=i;jlt;j++)k++;;
rintf(quot%d\nquot,k);}
运行结。
5、;}
if(n==)returna[n];
elsereturna[n]*FF(a,n);}
根据函数原型quotdoubleMean(doublea[M][N],intm,intn)quot,
编写函数定义,要求返回二维数组a[m][n]中所有元素的平均值。
假定在计算过程中采用变量v存放累加值和最后的平均值。
doubleMean(doublea[M][N],intm,intn){
inti,j;
doublev=O;
for(i=O;iltm;i++)
for(j=O;jltn;j++)v+=a[i][j];
v=m*n;returnv;}注:函数体的最后两行可以合并为一条返回语
句:returnv=m*n,也可以把quot=quot去掉。
根据函数原型quotintMM(inta[],intm)quot,编写函数定义,计
算并返回数组a[m]中元素最大值和最小值之差。
intMM(inta[],intm){
inti,x,x;
xl=x=a[];
for(i=;iltm;i++){
if(a[i]gtx)xl=a[i];
if(a[i]ltx)x=a[i];}
returnxlx;}本科《C语言程序设计A》复习资料
一、单选题
在每个C语言程序中都必须包含有这样一个函数,该函数
的函数名为(A。
6、能
intWC(inta[],intn,intk){
inti,c=O;
for(i=O;iltn;i++)
if(a[i]gt=k)c++;
returnc;}
函数功能:统计并返回一维整型数组a[n]中大于等于k的值的个
数。
voidQA(structWorkera[],intn)
{inti;
for(i=O;iltn;i++)
scanf(quot%s%d%fquot,a[i]name,ama[i]age,ama[i]ay);}
假定结构类型structWorker的定义如下:
structWorker{charname[];intage;floatay;};
函数功能:从键盘上为具有structWorker类型的数组a[n]输入n个记
录。
includeltstdiohgt
intSA(inta,intb){
if(agtb)return;
elseif(a==b)return;
elsereturn;}
函数功能:比较两个整数a和b的大小,若agtb则返回,若a==b
则返回,若altb则返回。
voidOutut(structIntNode*f)f为单链表的表头指针
{if(!f)return;
while(f){
rintf(quot%dquot,fgtdata);
f=fg。
7、turnsum;}
编写一个程序,输出以内(含)的、能够被或者整
除的所有整数。
程序为:includeltstdiohgt
voidmain(){
inti;
for(i=;ilt=;i++)
if(i%==||i%==)rintf(quot%dquot,i);
rintf(quot\nquot);}
编写一个递归函数“intFF(inta[],intn)”,求出数组a中
所有n个元素之积并返回。
程序为:intFF(inta[],intn){
if(nlt=){rintf(quotn值非法\nquot),exit();}
if(n==)returna[n];
elsereturna[n]*FF(a,n);}
编写一个程序,输出以内(含)的、能够被或者整
除的所有整数。
includeltstdiohgt
voidmain(){
inti;
for(i=;ilt=;i++)
if(i%==||i%==)rintf(quot%dquot,i);
rintf(quot\nquot);}
编写一个递归函数“intFF(inta[],intn)”,求出数组a
中所有n个元素之积并返回。
intFF(inta[],intn){
if(nlt=){rintf(quotn值非法\nquot),exit()。
8、果:
includeltstdiohgt
voidmain(){
intx=;
inti=;
while(iltx){
if(x%i==){rintf(quot%dquot,i);x=i;}
i++;}}
运行结果:
includeltstdiohgt
voidmain(){
inta[]={,,,,,,,};
inti,s=;
for(i=;ilt;i++)
if(a[i]gt=amama[i]lt=)s+=a[i];
rintf(quots=%d\nquot,s);}
运行结果:s=
includeltstdiohgt
intWF(intx,inty){
x=x+y;
y+=x;
returnx+y;}
voidmain(){
intx=,y=;
rintf(quot%d\nquot,WF(x,y));}
运行结果:
includeltstdiohgt
intLA(int*a,intn){
inti,s=O;
for(i=O;iltn;i++)s+=a[i];
returns;}
voidmain(){
inta[]={,,,,};
intb=LA(a,)+LA(a+,);
rintf(quotb=%d\nquot,b);}
运行结果:b=
四、写出下列每个函数的功。
9、tnext;}
rintf(quot\nquot);}
假定structIntNode的类型定义为:
structIntNode{intdata;structIntNode*next;};
函数功能:遍历并输出由f所指向的单链表中每个结点的值。
intSG(intx){x为大于等于的整数
inti=;
if(x==||x==)return;while(i*ilt=x){
if(x%i==)eak;
i++;}
if(i*ilt=x)return;elsereturn;}
函数功能:判断x是否为一个素数,若是则返回,否则返回。
intFindMax(structIntNode*f)
f为一个单链表的表头指针
{intx;
if(!f){rintf(quot单链表为空\nquot),exit();}
x=fgtdata;
f=fgtnext;
while(f){
if(fgtdatagtx)x=fgtdata;
f=fgtnext;}
returnx;}
假定structIntNode的结点类型定义为:
structIntNode{intdata;structIntNode*next;};
函数功能:求出并返回由f所指向的单链表中所有结点的最大值。
五、按题目要求编写程序或函数
编写一个程序,计算++。
10、++的值并输出,假定分
别用i,,s作为循环变量、累乘变量和累加变量的标识符。
程序为:
includeltstdiohgt
voidmain(){
inti;
int=;
ints=;
for(i=;ilt=;i++){*=;s+=;}
rintf(quot%d\nquot,s);}
根据函数原型“intFF(inta[],intn)”,编写函数定义,
计算并返回数组a[n]中所有元素之和。
程序为:
intFF(inta[],intn){
inti,sum=;
for(i=;iltn;i++)sum+=a[i];
returnsum;}
编写一个主函数,计算++++的值并输出,假定分别用
i,,s作为循环变量、累乘变量和累加变量的标识符。
程序为:
includeltstdiohgt
voidmain(){
inti;
int=;
ints=;
for(i=;ilt=;i++){*=;s+=;}
rintf(quot%d\nquot,s);}
根据函数原型“intFF(inta[],intn)”,编写函数定义,计
算并返回数组a[n]中所有元素之和。
程序为:
intFF(inta[],intn){
inti,sum=;
for(i=;iltn;i++)sum+=a[i];
re。
11、少被执行一次的循环语句为(C)。
AforBwhileCdowhileD任一种循环
假定n的值为,则表达式n++的值为(B)。
ABCD
假定一个二维数组的定义为quotinta[][]={{,},{,,}}
号quot,则元素a[][O]值为(A)。
ABCD
假定一个函数原型为quotchar*func(intn)quot,则该函数的返回类
型为(D)。
AintBint*ccharDchar*
假定a为一个字符数组名,则元素a[i]的指针访问方式为(B)。
Aa+iB*(a+i)Cama+iD*a+i
假定有语句为quotint*=calloc(+,sizeof(int)),则所
指向的动态数组中所包含的元素个数为(C)。
ABcD
十进制数表示成符合C语言规定的八进制数为(D)。
ABCD
若要以读和写两种操作方式打开一个二进制文件,当文件不存
在时返回打开失败信息,则选用的打开方式字符串为(C)。
Aquotr+quotBquotab+quotCquotrh+quotDquotwb+quot
二、填空题
在一个C语言程序文件中,若要包含另外一个头文件或程序文
件,则应使用的预处理命令为(include)
用于从键盘上为变量输入值的标准输入函数的函数名为(scanf)
假定一个枚举类型的定义为quot 。
12、enumRA{ab,ac,ad,ae};quot,则
ac的值为()
double类型的长度为()
执行quotintx=,y=;rintf(quot%dquot,xy);quot语句序列后得到的
输出结果为()
把表达式x=x+y转换成复合赋值表达式为(x+=y)
假定x的值为,则执行quota=((!x)?:);quot语句后a的值为()
假定一维字符指针数组的定义为quotchar*a[];quot,则该数组占用
的存储空间的字节数为()
假定二维数组的定义为quotdoublea[M][N];quot则数组元素的行下标
取值范围在(~M)之间
空字符串的长度为()
在所有函数定义之外定义的变量,若没有被初始化则系统隐含
对它所赋的初值为()
若指向x,则(*)与x的表示是等价的。
直接访问表达式(*f)score所对应的间接访问表达式为
(fgtscore)
一个函数定义由函数头_和函数体两部分组成。
执行“rintf(quot%cquot,'F');”语句后得到的输出结果为D。
int类型的长度为。
表达式(float)的值为。
若x=,y=,则xlt=y的逻辑值为(或真)。
作为语句标号使用的case和default只能用于switch或开
关或分情况_语句的定义体中。
在程序中执行到return或返