版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021-2022學(xué)年湖北省孝感市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(12題)1.
有以下程序
#include<stdio.h>
main
{inta=1,b=2,c=3,x;
x=(a^b)&C;printf("%d",x);
}
程序的運(yùn)行結(jié)果是()。
A.0B.1C.2D.3
2.以下說(shuō)法錯(cuò)誤的是()。
A.由3種基本結(jié)構(gòu)組成的結(jié)構(gòu)化程序不能解決過(guò)于復(fù)雜的問(wèn)題
B.由3種基本結(jié)構(gòu)組成的結(jié)構(gòu)化程序能解決一些簡(jiǎn)單的問(wèn)題
C.由3種基本結(jié)構(gòu)組成的結(jié)構(gòu)化程序能解決遞歸問(wèn)題
D.由3種基本結(jié)構(gòu)組成的結(jié)構(gòu)化程序能解決數(shù)學(xué)上有解析解的問(wèn)題
3.下述程序執(zhí)行的輸出結(jié)果是()。#include<stdio.h>main(){chara[2][4];strcpy(a。"are");strcpy(a[1],"you");a[o][3]=&;printf("%s\n",a);}A.are&youB.youC.areD.&
4.若有定義int?x,y;并已正確給變量賦值,則以下選項(xiàng)中與表達(dá)式(x-y)?(x++):(y++)中的條件表達(dá)式(x-y)等價(jià)的是()。A.(x-y<0|x-y>0)B.(x-y<0)C.(x-y>0).D.(x-y==0)
5.有以下程序:#include<stdio,h>#include<string,h>struetSTU{intnam;floatTotalSeore;};voidf(strnctSTUp){structSTUs[2]={{20044,550},{20045,537}};p.num=s[1].num;p.TotalScore=s[1].TotalScore;main(){structSTUs[2]={{20041,703},{20042,580}};f(s[0]);printf("%d%3.Of\n",s[0].num,s[0].TotalSeore);}程序運(yùn)行后的輸出結(jié)果是()。
A.20045537B.20044550C.20042580D.20041703
6.在執(zhí)行()操作時(shí),需要使用隊(duì)列做輔助存儲(chǔ)空間。
A.查找哈希(Hash)表B.深度優(yōu)先搜索網(wǎng)C.前序(根)遍歷二叉樹(shù)D.廣度優(yōu)先搜索網(wǎng)
7.下列定義數(shù)組的語(yǔ)句中,正確的是()。A.#defineN10?intx[N];
B.intN=10;int[N];
C.intx0..10];
D.Intx[];.
8.下列敘述中正確的是()。
A.數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)必定是一一對(duì)應(yīng)的
B.由于計(jì)算機(jī)存儲(chǔ)空間是向量式的存儲(chǔ)結(jié)構(gòu),因此,數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)一定是線性結(jié)構(gòu)
C.程序設(shè)計(jì)語(yǔ)言中的數(shù)組一般是順序存儲(chǔ)結(jié)構(gòu),因此,利用數(shù)組只能處理線性結(jié)構(gòu)
D.以上三種說(shuō)法都不對(duì)
9.有以下程序:
程序執(zhí)行后的輸出結(jié)果是()。
A.357B.753C.369D.751
10.以下選項(xiàng)中,非法的字符常量是______。
A.'t\'B.'\17'C.\nD.'\xaa'
11.已知有double型變量x=2.5,y=4.7,整型變量a=7,則表達(dá)式x+a%3*(int)(x+y)%2/4的值是()。
A.2.4B.2.5C.2.75D.0
12.C語(yǔ)言可執(zhí)行程序的開(kāi)始執(zhí)行點(diǎn)是()。
A.包含文件中的第一個(gè)函數(shù)B.程序中第一個(gè)函數(shù)C.程序中的main()函數(shù)D.程序中第一條語(yǔ)句
二、2.填空題(12題)13.下列程序的輸出結(jié)果是【】。
intt(intx,inty,intcp,intdp)
{cp=x*x+y*y;
dp=x*x-y*y;
}
main()
{inta=4,b=3,c=5,d=6;
t(a,b,c,d);
printf("%d%d\n",c,d);
}
14.若x為血類型,請(qǐng)寫(xiě)出與!x等價(jià)的C語(yǔ)言表達(dá)式______。
15.以下說(shuō)明語(yǔ)句中,【】是結(jié)構(gòu)體類型名。
typedefstruct
{intn;
charch[8];
}PER;
16.下列程序的功能是對(duì)輸入的一行字符中的數(shù)字字符的字面值累加,輸出此累加和,請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
#include<ctype.h>
main()
{charc;
inta,s=0;
while(______)
if(isdigit(C))
{a=c-'0';s+=a;}
printf("s=%d",s);
}
17.一個(gè)模塊直接調(diào)用的其他模塊的模塊個(gè)數(shù)稱為_(kāi)_____。
18.下列程序中的數(shù)組a包括10個(gè)整數(shù)元素,分別將前項(xiàng)和后項(xiàng)之和存入數(shù)組b,并按每行4個(gè)元素輸出數(shù)組b。請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
main()
{inta[10],b[10],i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
______;
for(i=0;i<9;i++)
{if(i%4=0)printf("\n");
printf("%3d",b[i]);
}
}
19.語(yǔ)句:x++;++x;x=1+x;執(zhí)行后都使變量x中的值增1,請(qǐng)寫(xiě)出一條同一功能的賦值語(yǔ)句______。
20.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
21.一個(gè)項(xiàng)目具有一個(gè)項(xiàng)目主管,一個(gè)項(xiàng)目主管可管理多個(gè)項(xiàng)目,則實(shí)體"項(xiàng)目主管"與實(shí)體"項(xiàng)目"的聯(lián)系屬于【】的聯(lián)系。
22.下面程序的功能是:計(jì)算1~10之間的奇數(shù)之和與偶數(shù)之和,請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
main()
{inta,b,c,i;
a=c=0;
for(i=0;i<=10;i+=2)
{a+=i;
【】;
c+=b;}
printf("偶數(shù)之和=%d\n",a);
printf("奇數(shù)之和=%d\n",c-11);}
23.一個(gè)項(xiàng)目有一個(gè)項(xiàng)目主管,一個(gè)項(xiàng)目主管可管理多個(gè)項(xiàng)目,則實(shí)體“項(xiàng)目主管”與實(shí)體“項(xiàng)目”的聯(lián)系屬于【】的聯(lián)系。
24.下列程序的輸出結(jié)果是______.
#include<stdio.h>
fun()
{staticinta=O;
a+=3;printf("%d",a);
}
main()
{intcc;
for(cc=1;cc<5;cc++)fun();
printf("\n");
}
三、3.程序設(shè)計(jì)題(10題)25.已知學(xué)生的記錄由學(xué)號(hào)和學(xué)習(xí)成績(jī)構(gòu)成,N名學(xué)生的數(shù)據(jù)已存入a結(jié)構(gòu)體數(shù)組中。請(qǐng)編寫(xiě)函數(shù)fun,函數(shù)的功能是:找出成績(jī)最低的學(xué)生記錄,通過(guò)形參返回主函數(shù)(規(guī)定只有一個(gè)最低分)。
注意:部分源程序存在文件PROGl.C文件中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的蒞括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。
26.編寫(xiě)函數(shù)fun,其功能是:根據(jù)以下公式求P的值,結(jié)果由函數(shù)值帶回。m與n為兩個(gè)正整數(shù)且要求m>n。
例如:m=12,n=8時(shí),運(yùn)行結(jié)果為495.000000。
注意:部分源程序在文件PROGl.C文件中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。
27.請(qǐng)編寫(xiě)一個(gè)函數(shù)fun(),它的功能是:比較兩個(gè)字符串的長(zhǎng)度,(不得調(diào)用C語(yǔ)言提供的求字符串長(zhǎng)度的函數(shù)),函數(shù)返回較短的字符串。若兩個(gè)字符串長(zhǎng)度相等,則返回第1個(gè)字符串。
例如,輸入nanjing<CR>nanchang<CR>(<CR>為回車鍵),函數(shù)將返回nanjing。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。
試題程序:
#include<stdio.h>
char*fun(char*S,char*t)
{
}
main()
{
chara[20],b[10],*p,*q;
inti;
printf("Inputlthstring:");
gets(a);
printf("Input2thstring:");
gets(b);
printf(“%s”,fun(a,b));
}
28.請(qǐng)編寫(xiě)函數(shù)fun(),它的功能是:求出ss所指字符串中指定字符的個(gè)數(shù),并返回此值。
例如,若輸入字符串123412132,輸入字符1,則輸出3。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。
試題程序:
#include<coio.h>
#include<stdio.h>
#defineM81
intfun(char*ss,charc)
{
}
main()
{chara[M],ch;
clrscr();
printf("\nPleaseenterastring:");
gets(a);
printf("\nPleaseenterachar:");
ch=getchar();
printf("\nThenumberofthecharis:%d\n",fun(a,ch));
}
29.請(qǐng)編寫(xiě)一個(gè)函數(shù)fun,它的功能是:求出一個(gè)2×M整型二維數(shù)組中最大元素的值,并將此值返回調(diào)用函數(shù)。
注意:部分源程序存在文件PROGl.C文件中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。
30.請(qǐng)編寫(xiě)函數(shù)fun(),它的功能是計(jì)算:s=(1-In(1)-In(2)-In(3)-…-1n(m))2
s作為函數(shù)值返回。
在C語(yǔ)言中可調(diào)用log(n)函數(shù)求In(n)。log函數(shù)的引用說(shuō)明是doublelog(doublex)。
例如,若m的值為15,則fun()函數(shù)值為723.570801。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。
試題程序:
#include<conio.h>
#include<stdio.h>
#include<math.h>
doublefun(intm)
{
}
main()
{
clrscr();
printf("%f\n",fun(15));
}
31.學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,N名學(xué)生的數(shù)據(jù)已存放在主函數(shù)的結(jié)構(gòu)體數(shù)組s中,請(qǐng)編寫(xiě)函數(shù)fun,它的功能是:把低于平均分的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中,低于平均分的學(xué)生人數(shù)通過(guò)形參n傳回,平均分通過(guò)函數(shù)值返回。
[注意]部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在fun函數(shù)的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。
[試題源程序]
#include<stdio.h>
#defineN8
typedefstruct
{
charnum[10];
doubles;
}STREC;
doublefun(STREC*a,STREC*b,int*n)
{
}
voidmain()
{
STRECs[N]={{"GA05",85},
{"GA03",76},{"GA02",69},{"GA04",85},
{"GA01",91},{"GA07",72},{"GA08",64},
{"GA06",87}};
STRECh[N],t;FILE*out;
inti,j,n;
doubleave;
ave=fun(s,h,&n);
printf("The%dstudentdatawhichislowerthan%7.3f:\n",n,ave);
for(i=0;i<n;i++)
printf("%s%4.1f\n",h[i].num,h[i].s);
printf("\n");
ut=fopen("out.dat","W");
fprintf(out,"%d\n%7.3f\n",n,ave);
for(i=0;2<n-1;i++)
for(j=i+1;j<n;j++)
if(h[i].s>h[j].s)
{
t=h[i];
h[i]=h[j];
h[j]=t;
}
for(i=0;2<n;i++)
fprintf(out,"%4.1f\n",h[i].s);
fclose(out);
}
32.某學(xué)生的記錄由學(xué)號(hào)、8門(mén)課成績(jī)和平均分組成,學(xué)號(hào)和8門(mén)課的成績(jī)已在主函數(shù)中給出。請(qǐng)編寫(xiě)fun()函數(shù),它的功能是:求出該學(xué)生的平均分放在記錄的ave成員中。請(qǐng)自己定義正確的形參。
例如,若學(xué)生的成績(jī)是85.5,76,69.5,85,91,72,64.5,87.5,則他的平均分應(yīng)當(dāng)是78.875。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。
試題程序:
#include<stdio.h>
#defineN8
typedefstruct
{charnum[10];
doubles[N];
doubleave;
}STREC;
voidfun()
{
}
main()
{
STRECs={"GA005",85.5,76,69.5,85,91,72,64.5,87.5);
inti;
fun(&s);
printf("The%s'sstudentdata:\n",s.num)//*輸出學(xué)號(hào)*/
for(i=0;i<N;i++)
printf("%4.1f\n",s.s[i]);
/*輸出各科成績(jī)*/
printf("\nave=%7.3f\n",s.ave);
/*輸出平均分*/
}
33.函數(shù)fun的功能是:將s所指字符串中除了下標(biāo)為奇數(shù)、同時(shí)ASCII值也為奇數(shù)的字符之外,其余的所有字符都刪除,串中剩余字符所形成的一個(gè)新串放在t所指的數(shù)組中。
例如,若s所指字符串中的內(nèi)容為:“ABCDEFGl2345”,其中字符A的ASCII碼值雖為奇數(shù),但所在元素的下標(biāo)為偶數(shù),因此必需刪除;而字符1的ASCII碼值為奇數(shù),所在數(shù)組中的下標(biāo)也為奇數(shù),因此不應(yīng)當(dāng)刪除,其他依此類推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是:“135”。
注意:部分源程序存在文件PROGl.C中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。
34.m個(gè)人的成績(jī)存放在score數(shù)組中,請(qǐng)編寫(xiě)函數(shù)fun,它的功能是:將低于平均分的人數(shù)作為函數(shù)值返回,將低于平均分的分?jǐn)?shù)放在below所指的數(shù)組中。
例如,當(dāng)score數(shù)組中的數(shù)據(jù)為:10、20、30、40、50、60、70、80、90時(shí),函數(shù)返回的人數(shù)應(yīng)該是4,below中的數(shù)據(jù)應(yīng)為:10、20、30、40。
注意:部分源程序在文件PROGl.C文件中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。
四、單選題(0題)35.下列敘述中正確的是()。
A.可以用關(guān)系運(yùn)算符比較字符串的大小
B.空字符串不占用內(nèi)存,其內(nèi)存空間大小是0
C.兩個(gè)連續(xù)的單引號(hào)是合法的字符常量
D.兩個(gè)連續(xù)的雙引號(hào)是合法的字符串常量
五、單選題(0題)36.有以下程序main(){chars[]="Yes\n/No",*ps=s;puts(ps+4);*(ps+4)=0;puts(s);}程序運(yùn)行后的輸出結(jié)果是(選項(xiàng)D中的第一行是空行)A.n/NoYes/NoB./NoYesYesC.n/No/NoD.Yes/No
六、單選題(0題)37.第
2
題
現(xiàn)有如下程序段
#include"stdio.h"
main()
{intk[30]={12,324,45,6,768,98,21,34,453,456};
intcount=0,i=0;
while(k[i])
{if(k[i]%2==0‖k[i]%5==0)count++;
i++;}
printf("%d,%d\n",count,i);}
則程序段的輸出結(jié)果為
A.7,8B.8,8C.7,10D.8,10
參考答案
1.D
\n首先計(jì)算1與2的或運(yùn)算,再將其結(jié)果與3進(jìn)行“與”運(yùn)算,結(jié)果為00000011,即十進(jìn)制數(shù)3。
\n
2.A順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)是3種基本結(jié)構(gòu),由3種基本結(jié)構(gòu)構(gòu)成的程序稱為結(jié)構(gòu)化程序,由3種基本結(jié)構(gòu)組成的算法可以解決任何復(fù)雜的問(wèn)題,選項(xiàng)A錯(cuò)誤。本題答案為A選項(xiàng)。
3.Astrcpy實(shí)現(xiàn)的功能是復(fù)制,該操作把a(bǔ)re復(fù)制到a中,aE03E33一’&’,且strcpy(aEl],"you")把you復(fù)制到a[l]中,故輸出a為“are&you”。
4.A條件表達(dá)式:x=表達(dá)式1:表達(dá)式2:表達(dá)式3的含義是:先求解表達(dá)式1.若為非0(真),則求解表達(dá)式2.將表達(dá)式2的值賦給x。若表達(dá)式1的值為0(假),則求解表達(dá)式3.將表達(dá)式3的值賦給x。在本題中與表達(dá)式1:(x-y)等價(jià)的是(x-y<0|x-y>0)。
5.D解析:函數(shù)f中定義了結(jié)構(gòu)體類型的變量P作為形參,在main函數(shù)中,將結(jié)構(gòu)體變量s[0]中的值傳給了形參變量P,在函數(shù)f中,雖然改變了p中的內(nèi)容,但其改變對(duì)main函數(shù)中s[0]的值不產(chǎn)生影響,所以main函數(shù)中輸出s[0]的數(shù)據(jù)仍然是main函數(shù)中初始化時(shí)的數(shù)據(jù)。
6.D
7.A數(shù)組說(shuō)明的一般形式為:類型說(shuō)明符數(shù)組名[常量表達(dá)式]。B)中N是變量,不能用變量定義數(shù)組長(zhǎng)度。C)選項(xiàng)中數(shù)組長(zhǎng)度是非法的一串?dāng)?shù)字。定義數(shù)組時(shí)必須為其指明長(zhǎng)度,D)選項(xiàng)中數(shù)組長(zhǎng)度為空,所以非法。
8.D解析:一般來(lái)說(shuō),一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲(chǔ)結(jié)構(gòu),因此,數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)不一定是一一對(duì)應(yīng)的。選項(xiàng)A中的說(shuō)法是錯(cuò)誤的。雖然計(jì)算機(jī)的存儲(chǔ)空間是向量式的存儲(chǔ)結(jié)構(gòu),但由于一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲(chǔ)結(jié)構(gòu),例如,線性鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。一般來(lái)說(shuō),性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)序號(hào)是不連續(xù)的,并且各結(jié)點(diǎn)在存儲(chǔ)空間中的位置關(guān)系與邏輯關(guān)系也不一致。性鏈表中,各數(shù)據(jù)元素之間的前后件關(guān)系是由各結(jié)點(diǎn)的指針域來(lái)指示的。因此,數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)不一定是線性結(jié)構(gòu)。選項(xiàng)B中的說(shuō)法也是錯(cuò)誤的。雖然程序設(shè)計(jì)語(yǔ)言中的數(shù)組一般是順序存儲(chǔ)結(jié)構(gòu),但是,利用數(shù)組也能處理非線性結(jié)構(gòu)。例如,滿二叉樹(shù)與完全二叉樹(shù)是非線性結(jié)構(gòu),但對(duì)于滿二叉樹(shù)與完全二叉樹(shù)來(lái)說(shuō),根據(jù)完全二叉樹(shù)的性質(zhì)6,可以按層序進(jìn)行順序存儲(chǔ),即利用程序設(shè)計(jì)語(yǔ)言中的數(shù)組來(lái)存儲(chǔ),這樣,不僅節(jié)省了存儲(chǔ)空間,又能方便地確定每一個(gè)結(jié)點(diǎn)的父結(jié)點(diǎn)與左右子結(jié)點(diǎn)的位置。對(duì)于一般的二叉樹(shù)來(lái)說(shuō),也可以將二叉樹(shù)中每一個(gè)結(jié)點(diǎn)的左指針、右指針以及數(shù)據(jù)域分別用三個(gè)數(shù)組中的對(duì)應(yīng)元素來(lái)存儲(chǔ),即實(shí)際上也是利用了程序設(shè)計(jì)語(yǔ)言中的數(shù)組來(lái)處理二叉樹(shù)這樣的非線性結(jié)構(gòu)。選項(xiàng)C中的說(shuō)法也是錯(cuò)誤的。綜上所述,選項(xiàng)A、B與C中的說(shuō)法都是錯(cuò)誤的。
9.A本題考查的是for循環(huán)與二維數(shù)組的定義和引用。當(dāng)定義二維數(shù)組的初始化列表只使用一重花括號(hào)時(shí),其中的每個(gè)值依次代表從第l行的第1個(gè)元素起,直到第l行滿,接著代表第2行、第3行……的每一個(gè)元素。程序中的循環(huán)將循環(huán)3次,循環(huán)變量i的值分別是0、1、2,所以3次循環(huán)中輸出的數(shù)分別是:t[2一O][D]、t[2-1][1]、t[2~2]121,即t[2][0]、t[1][l]、t[0][2],所以最后輸出的結(jié)果為357。故應(yīng)該選擇A)。
10.C解析:C語(yǔ)言中字符常量是以單引號(hào)括起來(lái)的單個(gè)字符,或以“\\”與三位八進(jìn)制數(shù)值或兩位十六進(jìn)制數(shù)值代替單個(gè)字符。
11.B
12.C解析:每個(gè)C程序有且只有一個(gè)主函數(shù)main(),且程序必須從main函數(shù)開(kāi)始執(zhí)行,并在main()函數(shù)中結(jié)束。
13.5656解析:本題中a,b,c,d足實(shí)參,x,y,cp,dp是形參。C語(yǔ)言規(guī)定,實(shí)參變量對(duì)形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實(shí)參傳給形參,而不能由形參傳回來(lái)給實(shí)參。在內(nèi)存中,實(shí)參單元與形參單元是不同的單元。在調(diào)用函數(shù)時(shí),給形參分配存儲(chǔ)單元,并將實(shí)參對(duì)應(yīng)的值傳遞給形參,調(diào)用結(jié)束后,形參單元被釋放,實(shí)參單元仍保留并維持原值。因此,程序的輸出結(jié)果是56。
14.x==0x==0解析:!x的邏輯意思就是x為非,即x==0。
15.PERPER解析:本題中,typedef聲明新的類型名PER來(lái)代替已有的類型名,PER代表上面指定的一個(gè)結(jié)構(gòu)體類型,此時(shí),也可以用PER來(lái)定義變量。
16.(c=getchar())!='\n'(c=getchar())!='\\n'解析:分析題目可知,程序中運(yùn)用函數(shù)c=getchar()從標(biāo)準(zhǔn)輸入設(shè)備讀取下一個(gè)字符,而且是一行的字符(即沒(méi)有換行),所以條件為(c=getchar())!='\\n'。
17.扇出扇出解析:在結(jié)構(gòu)圖中,調(diào)用一個(gè)給定模塊的模塊個(gè)數(shù)稱為扇入,一個(gè)模塊直接調(diào)用的其他模塊個(gè)數(shù)稱為扇出。
18.b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]解析:將數(shù)組a中元素a[i]與a[j+1]值相加后的值賦予數(shù)組b中元素b[i],即可實(shí)現(xiàn)將一個(gè)數(shù)組的前項(xiàng)和后項(xiàng)之和存入另一數(shù)組。
19.x+=1x+=1解析:本題考查“++”,“--”運(yùn)算符?!?+”、“--”只能作用于變量,不能用于表達(dá)式或常量;前綴形式是在使用變量之前先將其值增1或減1,后綴形式是先使用變量原來(lái)的值,使用完后再使其增1或減1。
20.軟件開(kāi)發(fā)
21.一對(duì)多(或1∶N)一對(duì)多(或1∶N)解析:兩個(gè)實(shí)體集間的聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有3種,即一對(duì)一(1∶1)的聯(lián)系、一對(duì)多(1∶N)或多對(duì)一(N∶1)的聯(lián)系和多對(duì)多(N∶N)的聯(lián)系。
22.b=i+1b=i+1解析:本題考查了for循環(huán)語(yǔ)句的執(zhí)行過(guò)程。i+=2是修正表達(dá)式,執(zhí)行一次循環(huán)體后i的值就增加2,i的初始值為0,每次加2之后和累加至a,所以a的值就是1~10之間的偶數(shù)之后;b的值是1~11之間的奇數(shù)和,但在輸出b值時(shí)c去掉多加的11,即為1~10之間的奇數(shù)之和。
23.一對(duì)多或1:N一對(duì)多或1:N解析:兩個(gè)實(shí)體集間的聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有三種,即一對(duì)一(1:1)的聯(lián)系、一對(duì)多(1:N)或多對(duì)一(N:1)的聯(lián)系和多對(duì)多(N:N)的聯(lián)系。
24.3691236912解析:本題考查最基本的for循環(huán):for(cc=1;cc<5;cc++)規(guī)定循環(huán)次數(shù)為4次,每次a+=3即每次a的值增3,但因?yàn)閒un函數(shù)中變量a為static類型,所以每次調(diào)用完子函數(shù)之后,變量a所做的改變都要保存。
25.
解析:該程序功能是求最低分?jǐn)?shù)的學(xué)生。本題是關(guān)于求解結(jié)構(gòu)體中某些成員的最小值,首先將第一個(gè)值設(shè)定為最小值,并在循環(huán)中將其他所有值與該值進(jìn)行比較,求得最小值。
26.
解析:(1)該程序功能是對(duì)組合數(shù)公式求值。它的解題思路,可以分解為以下幾步:求m!→求n!→求(m-n)!→求組合數(shù)的值。
(2)從已給部分源程序的main主函數(shù)開(kāi)始入手,主函數(shù)中的“printf(“P=%f\n”,fun(12,8));”語(yǔ)句中“fun(12,8)”將12、8傳遞給fun中的m與n,fun函數(shù)實(shí)現(xiàn)對(duì)組合數(shù)的求佰。
27.char*fun(char*Schar*t){intij;for(i=0s[i]!=‘\0’;i++);/*求字符串的長(zhǎng)度*/for(j=0;t[j]!=‘\0’;j++);/*比較兩個(gè)字符串的長(zhǎng)度*/returns;/*函數(shù)返回較短的字符串若兩個(gè)字符串長(zhǎng)度相等則返回第1個(gè)字符串*/elsereturnt;}char*fun(char*S,char*t)\r\n{\r\ninti,j;\r\nfor(i=0,s[i]!=‘\\0’;i++);/*求字符串的長(zhǎng)度*/\r\nfor(j=0;t[j]!=‘\\0’;j++);/*比較兩個(gè)字符串的長(zhǎng)度*/\r\nreturns;/*函數(shù)返回較短的字符串,若兩個(gè)字符串長(zhǎng)度相等,則返回第1個(gè)字符串*/\r\nelse\r\nreturnt;\r\n}解析:本題中,第1個(gè)for循環(huán)的作用是求出s的字符個(gè)數(shù)i,第2個(gè)for循環(huán)的作用是求出t的字符個(gè)數(shù)j,因?yàn)槿魏窝h(huán)都要控制—條語(yǔ)句,所以在每—個(gè)for循環(huán)條件后面必須要有—個(gè)分號(hào)。
本題也可用如下技巧:
#include<string.h>/*一定要注意在最前面加#include<string.h>*/
char*fun(char*s,char*t)
{
if(strlen(S)>=strten(t)
returns;
elsereturnt;
}
28.intfun(char*sscharc){inti=0;for(;*ss!='\0';ss++)if(*ss==c)i++;/*求出ss所指字符串中指定字符的個(gè)數(shù)*/returni;}intfun(char*ss,charc)\r\n{\r\ninti=0;\r\nfor(;*ss!='\\0';ss++)\r\nif(*ss==c)\r\ni++;/*求出ss所指字符串中指定字符的個(gè)數(shù)*/\r\nreturni;\r\n}解析:從字符串ss中找出子字符串的方法是:從第1個(gè)字符開(kāi)始,對(duì)字符串進(jìn)行遍歷:若ss串的當(dāng)前字符等于t串的第1個(gè)字符,兩字符串的指針自動(dòng)加1,繼續(xù)比較下一個(gè)字符;若比較至字符串的結(jié)尾,則跳出循環(huán);若“串的字符和c串的字符不對(duì)應(yīng)相同,則繼續(xù)對(duì),s串的下一個(gè)字符進(jìn)行處理。本程序是采用逐一比較的方式找出出現(xiàn)的次數(shù)。循環(huán)的作用是在串中從左到右逐一走動(dòng),if()的作用是進(jìn)行判斷是否相同,若與c相同則表示又出現(xiàn)一次.
29.
解析:該程序功能是尋找二維數(shù)組中最大元素的值。其中,求最大元素的方法:用最大值變量maX標(biāo)記第一個(gè)待找數(shù)據(jù),逐個(gè)把所有待找數(shù)據(jù)和max進(jìn)行比較,并用max標(biāo)記當(dāng)前最大值及其所在位置,從而找出最大值。
30.doublefun(intm){inti;doubles=1.0;for(i=1;i<=m;i++)s=s-log(i);/*計(jì)算s=l-In(1)-In(2)-In(3)-…-In(m)*/return(s*s);/*對(duì)s求平方并返回*/}doublefun(intm)\r\n{\r\n\u3000inti;\r\ndoubles=1.0;\r\nfor(i=1;i<=m;i++)\r\ns=s-log(i);/*計(jì)算s=l-In(1)-In(2)-In(3)-…-In(m)*/\r\nreturn(s*s);/*對(duì)s求平方并返回*/\r\n}解析:首先,題目要求計(jì)算1依次減去1到M的對(duì)數(shù),可用從1到M的循環(huán),每次循環(huán)都減一個(gè)數(shù)的對(duì)數(shù)。該題需要注意,log()函數(shù)的形式參數(shù)應(yīng)浩如煙海double型變量,用于循環(huán)的基數(shù)變量為整數(shù),需要進(jìn)行強(qiáng)制轉(zhuǎn)換。最后在返回的時(shí)求平方。
31.intfun(STREC*aSTREC*bint*n){doubleave=0.0;intij=0;*n=0;for(i=0;i<N;i++)ave+=a[i].s;ave/=N;for(i=0;i<N;i++)if(a[i].s<ave){b[j]=a[i];(*n)++;j++;}returnave;}intfun(STREC*a,STREC*b,int*n)\r\n{\r\ndoubleave=0.0;\r\ninti,j=0;\r\n*n=0;\r\nfor(i=0;i<N;i++)\r\nave+=a[i].s;\r\nave/=N;\r\nfor(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 我國(guó)強(qiáng)制性環(huán)境責(zé)任保險(xiǎn)制度構(gòu)建:挑戰(zhàn)與突破
- 我國(guó)開(kāi)放式基金投資行為的多維度剖析與優(yōu)化路徑
- (2025年)影視鑒賞試題答案解析
- 2026湖南郴州市第三中學(xué)招聘男生公寓門(mén)衛(wèi)1人備考題庫(kù)及1套參考答案詳解
- 2026青海海西州格爾木健橋醫(yī)院醫(yī)務(wù)人員招聘24人備考題庫(kù)及一套完整答案詳解
- 2026福建省水利投資開(kāi)發(fā)集團(tuán)有限公司招聘1人備考題庫(kù)及一套答案詳解
- 2026浙江寧波海發(fā)漁業(yè)科技有限公司招聘1人備考題庫(kù)及完整答案詳解
- 2026黑龍江港航工程有限公司招聘6人備考題庫(kù)附答案詳解
- 2026河南省科學(xué)院物理研究所招聘1人備考題庫(kù)及答案詳解(易錯(cuò)題)
- 2026貴州黔南州惠水縣供銷合作社聯(lián)合社寒假大學(xué)生社會(huì)實(shí)踐招募備考題庫(kù)附答案詳解
- 電池回收廠房建設(shè)方案(3篇)
- 保函管理辦法公司
- 幼兒游戲評(píng)價(jià)的可視化研究
- 果樹(shù)賠賞協(xié)議書(shū)
- 基底節(jié)出血的護(hù)理查房
- 2025年廣東省中考物理試題卷(含答案)
- 金華東陽(yáng)市國(guó)有企業(yè)招聘A類工作人員筆試真題2024
- 2025年6月29日貴州省政府辦公廳遴選筆試真題及答案解析
- 2025年湖南省中考數(shù)學(xué)真題試卷及答案解析
- DB32/T 3518-2019西蘭花速凍技術(shù)規(guī)程
- 急救中心工作匯報(bào)
評(píng)論
0/150
提交評(píng)論