主頁 > 教育培訓(xùn) > 計(jì)算機(jī)等級考試二級C語言考前密卷及答案(6)

計(jì)算機(jī)等級考試二級C語言考前密卷及答案(6)


【14】=s;}
解析: C語言中實(shí)參變量和形參變量的數(shù)據(jù)傳遞是單向的“值傳遞”方式。指針變量作函數(shù)也要遵循這一規(guī)則。調(diào)用函數(shù)不可能改變實(shí)參指針變量的值,但可以改變實(shí)參指針變量所指變量的值。

(14)函數(shù)fun的功能是:根據(jù)以下公式求p的值,結(jié)果由函數(shù)值返回。m與n為兩個(gè)正數(shù)且要求m>n。
 
例如:m=12,n=8時(shí),運(yùn)行結(jié)果應(yīng)該是495.000000。請?jiān)陬}目的空白處填寫適當(dāng)?shù)某绦蛘Z句,將該程序補(bǔ)充完整。
#include
#include
float fun (int m, int n)
{ int i;
double p=1.0;
for(i=1;i<=m;i++)【15】;
for(i=1;i<=n;i++)【16】;
for(i=1;i<=m-n;i++)p=p/i;
return p;}
main ()
{ clrscr();
printf ("p=%f\n",fun (12,8));}
解析:本題中,欲求p的值,需要先求m,n,m-n的階乘值,可用循環(huán)語句實(shí)現(xiàn)。

(15)該程序運(yùn)行的結(jié)果是【17】。
#include
#include
#define M 100
void fun(int m, int *a, int *n)
{ int i,j=0;
for(i=1;i<=m;i++)
if(i%7==0||i==0)
a[j++]=i;
*n=j;}
main()
{ int aa[M],n,k;
clrscr();
fun(10,aa,&n);
for(k=0;kif((k+1) ==0)printf("\n");
else printf("M",aa[k]);
printf("\n");}
解析: 解答本題的關(guān)鍵是要讀懂程序,試題要找出能被7或11整除的所有整數(shù),注意數(shù)學(xué)中的“或”和C語言中的“或”的區(qū)別,但在此處,if條件語句中用了“||”運(yùn)算符,若要找能同時(shí)被7和11整除的所有整數(shù)則在if()中應(yīng)用“&&”運(yùn)算符。
當(dāng)然,如果m的值輸入50,即表達(dá)式fun(10,aa,&n);為fun(50,aa,&n);時(shí)輸入結(jié)果為:7  11  14  21  22  28  33  35  42  44  49。

(16)下列程序的功能是:求出ss所指字符串中指定字符的個(gè)數(shù),并返回此值。
例如,若輸入字符串123412132,輸入字符1,則輸出3,請?zhí)羁铡?br /> #include
#include
#define M 81
int fun(char *ss, char c)
{ int i=0;
for(; 【18】;ss++)
if(*ss==c)i++;
return i;}
main()
{ char a[M], ch;
clrscr();
printf("\nPlease enter a string: "); gets(a);
printf("\nPlease enter a char: "); ch=getchar();
printf("\nThe number of the char is: %d\n", fun(a,ch));}
解析: 從字符串ss中找出子字符串的方法是:從第1個(gè)字符開始,對字符串進(jìn)行遍歷;若ss串的當(dāng)前字符等于t串的第1個(gè)字符,兩字符串的指針自動(dòng)加1,繼續(xù)比較下一個(gè)字符;若比較至字符串的結(jié)尾,則跳出循環(huán);若ss串的字符和c串的字符對應(yīng)不同,繼續(xù)對ss串的下一個(gè)字符進(jìn)行處理。本程序是采用逐一比較的方式找出出現(xiàn)的次數(shù)。循環(huán)的作用是在串中從左到右逐一走動(dòng),if()的作用是進(jìn)行判斷是否相同,若與c相同則表示又出現(xiàn)一次。

(17)下面程序把從終端讀入的文本(用@作為文本結(jié)束標(biāo)志)輸出到一個(gè)名為bi.dat的新文件中,請?zhí)羁铡?br /> #include "stdio.h"
FILE *fp;
{ char ch;
if((fp=fopen(【19】))==NULL)exit(0);
while((ch=getchar( ))!='@')fputc (ch,fp);
fclose(fp);}
解析: fopen函數(shù)的調(diào)用方式通常為:
FILE *fp
fp=fopen(文件名,使用文件方式);

(18)設(shè)有如下宏定義
#define MYSWAP(z,x,y)
{z=x;x=y;y=z;}
以下程序段通過宏調(diào)用實(shí)現(xiàn)變量a,b內(nèi)容交換,請?zhí)羁铡?br /> float a=5,b=16,c;
MYSWAP(【20】,a,b);
解析: 該題考查兩個(gè)知識(shí)點(diǎn):
(1)用一個(gè)指定的標(biāo)識(shí)符(即名字)來代表一個(gè)字符串,它的一般形式為#define 標(biāo)識(shí)符  字符串
(2)在MYSWAP宏定義中,利用中間變量z來交換x和y的值,所以要實(shí)現(xiàn)a和b的交換,只需通過中間變量即可,所以,此處應(yīng)填c。

免責(zé)聲明:該文觀點(diǎn)僅代表作者本人,查查吧平臺(tái)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)空間服務(wù),不承擔(dān)相關(guān)法律責(zé)任。圖片涉及侵權(quán)行為,請發(fā)送郵件至85868317@qq.com舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。返回查查吧首頁,查看更多>>
提示

該文觀點(diǎn)僅代表作者本人,查查吧平臺(tái)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)空間服務(wù),不承擔(dān)相關(guān)法律責(zé)任。圖片涉及侵權(quán)行為,請發(fā)送郵件至85868317@qq.com舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。

優(yōu)惠商城

更多