




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2022-2023學(xué)年山東省泰安市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(12題)1.若有如下程序:#definePI3.1415926#defineA(r)2*PI*rmain(){floata,1;a=3.0;1=A(a);printf("r=%.2f,1=%.2f\n",a,1);}則程序運(yùn)行后的輸出結(jié)果是()
A.r=3.001=18.85
B.3.00,18.85
C.r=3.0000001=18.8495555
D.r=3.01=18.8495555
2.下列敘述中正確的是()。
A.軟件測(cè)試應(yīng)該由程序開發(fā)者來完成
B.程序經(jīng)調(diào)試后一般不需要測(cè)試
C.軟件維護(hù)只包括對(duì)程序代碼的維護(hù)
D.以上三種說法都不對(duì)
3.有以下程序:#include<stdio.h>main(){inta=1,b=2,c=3,d=0;if(a==1&&b++==2) if(b!=2||c--!=3) printf(“%d,%d,%d\n”,a,b,c); elseprintf(“%d,%d,%d\n”,a,b,c);elseprintf(“%d,%d,%d\n”,a,b,c);}程序的運(yùn)行結(jié)果是()。
A.1,3,2B.1,3,3C.1,2,3D.3,2,1
4.一個(gè)二維數(shù)組的定義語句為“inta[3][4]={{3,4},{2,8,6}};”,則元素a[2][1]的值為()。
A.0B.4C.8D.6
5.現(xiàn)有如下程序段#include"stdio.h"main(){inta[5][6]={23,3,65,21,6,78,28;5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};inti=0,j=5;printf("%d\n",*(&a[0][0]+2*i+j-2));}則程序的輸出結(jié)果為
A.21B.78C.23D.28
6.設(shè)有定義“Charp[]={‘1’,‘2’,‘3’},*q=p;”,以下不能計(jì)算出一個(gè)char型數(shù)據(jù)所占字節(jié)數(shù)的表達(dá)式是()。A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])
7.
8.
A.if(x>0)y=1;elseif(x==0)y=0;elsey=-1;
B.y=0;if(x>0)y=1;elseif(x<0)y=-1;
C.y=0;if(x>=0)if(x>0)y=1;e1sey=-1;
D.if(x>=0)if(x>0)y=1;elsey=0:elsey=-1;
9.下述程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){chara=1,b=2;charc=a^b<<2;printf("\n%d",C);}
A.9B.10C.12D.2
10.層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫劃分原則是()。
A.記錄長(zhǎng)度B.文件的大小C.聯(lián)系的復(fù)雜程度D.數(shù)據(jù)之間的聯(lián)系方式
11.
12.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。A.1B.11C.7D.9
二、2.填空題(12題)13.以下程序的定義語句中,x[1]的初值是【】,程序運(yùn)行后輸出的內(nèi)容是【】。
#include<stdio.h>
main()
{intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;
for(i=0;i<4;i++)
{p[i]=&x[2*i+1];
printf("%d",p[i][0]);
}
printf("\n");)
}
14.下面函數(shù)用來求兩個(gè)單精度數(shù)之和,并通過形參將結(jié)果傳回,請(qǐng)?zhí)羁铡?/p>
voidsub(floatx,floaty,【】z)
{【】=x+y;}
15.表示條件;10<x<100或x<0的C語言表達(dá)式是【】。
16.下列程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{charb[]="Helloyou";
b[5]=0;
printf("%s\n",b);
}
17.以下程序的輸出結(jié)果是【】。
main()
{unsignedshorta=65536;intb;
printfC%d\n",b=a);
}
18.如下程序片段:
ina,b,c;
printf("inputa,b,c:");
scanf("a=%d,b=%d,c=%d",&a,&b,&c);
欲使輸出結(jié)果為1、2、3(分別對(duì)應(yīng)于a、b、c),輸入數(shù)據(jù)的正確形式為【】。
19.與表達(dá)式a+=b等價(jià)的另一書寫形式是______。
20.觀察題目要求,可以知道以下幾點(diǎn):}
21.strcmp函數(shù)的功能是【】。
22.設(shè)有以下定義和語句,則*(*(p+2)+1)的值為【】。
inta[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
23.若x為血類型,請(qǐng)寫出與!x等價(jià)的C語言表達(dá)式______。
24.已定義charch=′$′;inti=1,j;,執(zhí)行j!=ch&&i++以后,i的值為【】。
三、3.程序設(shè)計(jì)題(10題)25.請(qǐng)編寫一個(gè)函數(shù)fun(),它的功能是:將ss所指字符串中所有下標(biāo)為偶數(shù)位置的字母轉(zhuǎn)換為小寫(若該位置上不是字母,則不轉(zhuǎn)換)。
例如,若輸入ABC4efG,則應(yīng)輸出aBc4efg。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)miain和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
voidfun(char*SS)
{
}
main()
{
chartt[81];
clrscr();
printf("\nPleaseenteranstringwithin80
characters:\n");
gets(tt);
printf("\n\nAfterchanging,thestring\n
\%s",tt);
fun(tt);
printf("\nbecomes\n\%S\n",tt);
}
26.程序定義了NxN的二維數(shù)組,并在主函數(shù)中賦值。請(qǐng)編寫函數(shù)fun,函數(shù)的功能是:求出數(shù)組周邊元素的平均值并作為函數(shù)值返給主函數(shù)中的s。
例如:a數(shù)組中的值為:
則返回主程序后s的值應(yīng)為:3.375。
注意:部分源程序存在文件PROGl.C文件中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。
27.學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,請(qǐng)編寫函數(shù)fun,它的功能是:把高于等于平均分的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中,高于等于平均分的學(xué)生人數(shù)通過形參n傳回,平均分通過函數(shù)值返回。
注意:部分源程序在文件PROGl.C文件中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。
28.編寫一個(gè)函數(shù)fun(),它的功能是:實(shí)現(xiàn)兩個(gè)字符串的連接(不使用庫函數(shù)strcat,即把p2所指的字符串連接到p1所指的字符串后。
例如,分別輸入下面兩個(gè)字符串:
FirstString
SecondString
則程序輸出:
FirstStringSecondString
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)小填入所編寫的若干語句。
試題程序:
#include<stdio.h>
#include<conio.h>
voidfun(charpi[],charp2[])
{
}
main()
{
chars1[80],s2[40];
clrscr();
printf("Enters1ands2:\n");
scanf("%s%s",s1,s2);
printf("s1=%s\n",s1);
printf("s2=%s\n",s2);
printf("Invokefun(s1,s2):\n");
fun(s1,s2);
printf("Afterinvoking:\n");
printf("%s\n",s1);
}
29.請(qǐng)編寫一個(gè)函數(shù)fun,它的功能是:找出一維整型數(shù)組元素中最大的值和它所在的下標(biāo),最大的值和它所在的下標(biāo)通過形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。
主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個(gè)數(shù),max存放最大值,index存放最大值所在元素的下標(biāo)。
注意:部分源程序存在文件PROGl.C文件中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。
30.請(qǐng)編寫函數(shù)fun,其功能是:計(jì)算并輸出3到n之間(含3和n)所有素?cái)?shù)的平方根之和。
例如,在主函數(shù)中從鍵盤給n輸入100后,輸出為:sum=148.874270。
注意:要求n的值大于2但不大于100。部分源程序給出如下。清勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。
[試題源程序]
#include<math.h>
#include<stdio.h>
doublefun(intn)
{
}
main()
{
intn;
doublesum;
printf("\n\nInputn:");
scanf("%d",&n);
sum=fun(n);
printf("\n\nsum=%f\n\n",sum);
}
31.請(qǐng)編寫函數(shù)voidfun(intx,intpp[],int*n),它的功能是求出能整除x且不是奇數(shù)的各整數(shù),并按從小到大的順序放在pp所指的數(shù)組中,這些除數(shù)的個(gè)數(shù)通過形參n返回。
例如,若x中的值為24,則有6個(gè)數(shù)符合要求,它們是2,4,6,8,12,24。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
voidfun(intx,intPP[],int*n)
{
}
main()
{
intx,aa[1000],n,i;
clrscr();
printf("\nPleaseenteranintegernumber:
\n");
scanf("%d",&X);
fun(x,aa,&n);
for(i=0;i<n;i++)
printf("%d",aa[i]);
printf("\n");
}
32.編寫函數(shù)intfun(intlim,intaa[MAX]),該函數(shù)的功能是求出小于或等于lim的所有素?cái)?shù)并放在aa數(shù)組中,該函數(shù)返回所求出的素?cái)?shù)的個(gè)數(shù)。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
#defineMAX100
intfun(intlim,intse[MAX])
{
}
main()
{
intlimit,i,sum;
intaa[MAX];
clrscr();
printf("輸入一個(gè)整數(shù)");
scanf("%d",&limit);
sum=fun(limit,aa);
for(i=0;i<sum;i++)
{
if(i%10==0&&i!=0)/*每行輸出10個(gè)數(shù)*/
printf("\n");
printf("%5d",aa[i]);
}
}
33.請(qǐng)編寫函數(shù)fun,函數(shù)的功能是:統(tǒng)計(jì)各年齡段的人數(shù)。N個(gè)年齡通過調(diào)用隨機(jī)函數(shù)獲得,并放在主函數(shù)的age數(shù)組中;要求函數(shù)把O至9歲年齡段的人數(shù)放在d[0]中,把10至19歲年齡段的人數(shù)放在d[1],把20至29歲年齡段的人數(shù)放在d[2]中,其余依此類推,把100歲(含100)以上年齡的人數(shù)都放在d[10]中。結(jié)果在主函數(shù)中輸出。
注意:部分源程序在文件PROGl.C中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。
34.請(qǐng)編寫函數(shù)fun,其功能是:計(jì)算并輸出3到n之間(含3和n)所有素?cái)?shù)的平方根之和。
例如,在主函數(shù)中從鍵盤給n輸入100后,輸出為:sum=148.874270。
注意:要求n的值大于2但不大于100。部分源程序在文件PROGl.C中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。
四、單選題(0題)35.下列選項(xiàng)中,能正確定義數(shù)組的語句是()。
A.intnum[0..2008];
B.intnum[];
C.intN=2008;intnum[N];
D.#defineN2008;intnum[N];
五、單選題(0題)36.設(shè)有關(guān)鍵碼初始化序列{Q,H,C,Y,P,A,M,S,R,D,F,X},新序列{F,H,C,D,P,A,M,Q,R,S,Y,X}是采用()方法對(duì)初始序列精細(xì)第一堂排序的結(jié)果。
A.直接插入排序B.二路歸并排序C.快速排序D.基數(shù)排序
六、單選題(0題)37.
有以下程序
#include<stdio.h>
#include<string.h>
typedefstrlIct{charname[9];charsex;floatscore[2];}STU;
STUf(STUa)
{STUb={"Zhao",m,85.0,90.0);inti;
strcpy(aname,b.name);
sex:b.sex;
for(i=0;i<2;i++)a.score[i]=b.score[i];
returna;
}
main
{STUc="Qian",f,95.0,92.0},d;
d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);
}
程序的運(yùn)行結(jié)果是()。
A.Qian,f,95,92
B.Qian,m,85,90
C.Zhao,m,85,90
D.Zhao,f,95,92
參考答案
1.A
2.D程序調(diào)試是由程序開發(fā)者完成診斷和改正程序中的錯(cuò)誤的過程;軟件測(cè)試是由專門的測(cè)試人員完成,是發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程;軟件維護(hù)是指軟件系統(tǒng)交付使用以后,為了改正錯(cuò)誤或滿足新的需要而修改軟件的過程,是軟件生存周期中非常重要的一個(gè)階段。
3.Belse總是和最近的if配對(duì)。進(jìn)入第1個(gè)if語句進(jìn)行條件判斷時(shí),因?yàn)槭沁x輯與操作,需要兩邊運(yùn)算對(duì)象的值均為非零值才為真,所以需要逐個(gè)執(zhí)行判斷。結(jié)果為1,進(jìn)入第2個(gè)if語句進(jìn)行條件判斷。因?yàn)椤癰!=2”條件成立,所以整個(gè)條件表達(dá)式的值為真,不再執(zhí)行邏輯或的第2個(gè)運(yùn)算對(duì)象“(c--!=3)”變量c的值不變,也不再執(zhí)行第1個(gè)else語句。輸出a的值1,b的值3,c的值3。故本題答案為B選項(xiàng)。
4.A
5.A解析:通過地址來引用二維數(shù)組,若有以下定義:inta[3][4],i,j;且當(dāng)0≤i≤3,0≤j<4則可以有以下幾種方式來引用數(shù)組中的第i行,第j列的元素:\ue008a[i][j]\ue009,\ue008*(a[i]+j),\ue009*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。表達(dá)式&a[0][0]+2*i+j-2相當(dāng)于是地址&a[0][0]加上多少偏移量。
6.A根據(jù)題目中的定義可知,“sizeof(p)”計(jì)算的是數(shù)組p中所有元素所占用的字節(jié)數(shù),而不是char型數(shù)據(jù)所占的字節(jié)數(shù)。故本題答案為A選項(xiàng)。
7.C
8.C解析:選項(xiàng)A的意思是:在x>O情況下,y為1,否則,在x=O時(shí),y為0,剩下x<O時(shí),y為-1,滿足本題中函數(shù)的要求。選項(xiàng)B描述的意思是:初始化y的值為0,在x>O時(shí),給y重新賦值為1,否則,在x<O時(shí),給y重新賦值為-1,滿足本題中函數(shù)的要求。選項(xiàng)C描述的意思是:在x>=0情況下,如果x>O,則y為1,否則,即x==0時(shí),y為-1;剩下的x<O時(shí),y為0。可見答案C實(shí)現(xiàn)的結(jié)果不是給定的表達(dá)式。選項(xiàng)D中描述的意思是:在x>=0的情況下,如果x>O,就給y賦值為1,否則即x==0時(shí)給y賦值為0,在不是x>=0的其他情況下,就給y賦值為-1,滿足本題中函數(shù)的要求。所以4個(gè)選項(xiàng)中C為所選。
9.A
10.D層次模型的基本結(jié)構(gòu)是樹形結(jié)構(gòu),網(wǎng)狀模型是一個(gè)不加任何條件限制的無向圖,關(guān)系模型采用二維表來表示,所以三種數(shù)據(jù)庫的劃分原則是數(shù)據(jù)之間的聯(lián)系方式。
11.C
12.D題干中,函數(shù)fun的功能是將二維數(shù)組p的行下標(biāo)為1、列下標(biāo)為1的元素(p[1][1])的值賦給二維地址s指向的*s所指向的存儲(chǔ)單元。main函數(shù)中定義了整型指針p,動(dòng)態(tài)分配了整型長(zhǎng)度的內(nèi)存空間,調(diào)用函數(shù)fun將數(shù)組元素a[1][1],即9賦給p所指向的空間。本題答案為D選項(xiàng)。
13.224682,2468解析:在主函數(shù)中根據(jù)整型數(shù)組x[]的定義可知,x[1]的初值等于2。在for循環(huán)語句中,當(dāng)i=0時(shí),p[0]=&x[1],p[0][0]=2;當(dāng)i=1時(shí),p[1]=&x[3],p[1][0]=4;當(dāng)i=2時(shí),p[2]=&x[5],p[2][0]=6;當(dāng)i=3時(shí),p[3]=&x[7],\ue008p[3][0]\ue009=8,所以程序輸出的結(jié)果為2、4、6、8。
14.float**zfloat*\r\n*z解析:C程序中可以通過傳送地址的方式在被調(diào)用函數(shù)中直接改變被調(diào)用函數(shù)中變量的值,從而達(dá)到函數(shù)之間數(shù)據(jù)的傳遞。
15.(x>10&&x<100)||x<0
16.HelloHello解析:語句b[5]=0;相當(dāng)于語句b[5]='\\0';且'\\0'為字符串結(jié)束標(biāo)志,輸出時(shí)遇到'\\0'就停止輸出。
17.00解析:對(duì)于一個(gè)unsignedshort來說,它能取的最大值是65535。這里給a賦值65536,已經(jīng)超出了它的取值范圍,這樣它的高位將被截掉,只把低位賦給它(全零)。所以a的值實(shí)際為0。
18.a=1b=2c=3a=1,b=2,c=3解析:此題考查了scanf函數(shù)的輸入格式。scanf函數(shù)的輸入格式規(guī)定如果兩個(gè)格式說明項(xiàng)間有一個(gè)或多個(gè)普通字符,那么在輸入數(shù)據(jù)時(shí),在兩個(gè)數(shù)據(jù)之間也必須以這一個(gè)或多個(gè)字符作為分隔符。
19.a=a+ba=a+b解析:a+=b與a=a+b等價(jià),作用是把變量a的值加b后再賦給變量a。
20.p=i;i>=pi<=Np=i;\r\ni>=p\r\ni<=N解析:本題主要考查了插入排序。由于程序中的數(shù)組在開始已經(jīng)按從小到的大順序排好。在插入時(shí),首先要查到第一個(gè)大于待插入數(shù)的數(shù)組下標(biāo),即當(dāng)待插入元素小于數(shù)組中當(dāng)前元素時(shí),記下數(shù)組的當(dāng)前下標(biāo)p,并結(jié)束循環(huán)。故第一空目的是為了記下數(shù)組下標(biāo),應(yīng)填p=i;插入的第二部是將大于待插入元素的所有元素都向后移動(dòng)一位,故在循環(huán)時(shí),要從最后一個(gè)元素到第p個(gè)元素都要后移一位,因此第二空應(yīng)填i>=p。最后一個(gè)循環(huán)是將N+1個(gè)元素都輸出,故最后一空應(yīng)為i<=N。(注:本題有多種答案,以上僅提供一種)
21.字符串的比較strcmp函數(shù)的原型是intstrcmp(char*s1,char*s2);功能是對(duì)s1和s2所指字符串進(jìn)行比較,若s1<s2返回負(fù)數(shù),若s1==s2返回0,若s1>s2返回正數(shù)。
22.6060解析:程序中定義a是一個(gè)3行2列的二維數(shù)組,p是指向兩個(gè)元素的一維數(shù)組指針,并讓p指向二維數(shù)組a的首行。則代碼*(*(p+2)+1)中的p+2指向二維數(shù)組a的第三行a[2],*(p+2)指向a[2[]0],*(p+2)+1指向a[2][1],*(*(p+2)+1)是引用a[2][1],其值是60。
23.x==0x==0解析:!x的邏輯意思就是x為非,即x==0。
24.11解析:在執(zhí)行邏輯表達(dá)式'j=!ch&&i++'時(shí),首先判斷j=!ch的值,因?yàn)?ch=\'$\''不為0,所以'j=!ch=0',編譯系統(tǒng)便不再計(jì)算表達(dá)式'i++'的值,i的值不變,仍為1。
25.voidfun(char*ss){inti;for(i=0;ss[i]!='\0'i++)/*將ss所指字符串中所有下標(biāo)為偶數(shù)位置的字母轉(zhuǎn)換為小寫*/if(i%2==0&&ss[i]>='A'&&ss[i]<='z')ss[i]=ss[i]+32;}voidfun(char*ss)\r\n{\r\ninti;\r\nfor(i=0;ss[i]!='\\0'i++)/*將ss所指字符串中所有下標(biāo)為偶數(shù)位置的字母轉(zhuǎn)換為小寫*/\r\nif(i%2==0&&ss[i]>='A'&&ss[i]<='z')\r\nss[i]=ss[i]+32;\r\n}解析:從C語言的學(xué)習(xí)中我們知道,只要將小寫字母減去32則轉(zhuǎn)成大寫字母,將大寫字母加上32則轉(zhuǎn)成小寫字母。該程序是用if語句實(shí)現(xiàn)該功能轉(zhuǎn)化的。
26.
解析:該程序功能是求出數(shù)組周邊元素的平均值。其中周邊元素是指第一行的元素的行下標(biāo)為0,或者第n行的元素行下標(biāo)為n-1,或者第一列元素的元素列下標(biāo)為0,或者第n列的元素的列下標(biāo)為n-1。
27.
解析:該程序功能是把高于或等于平均分的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中,高于等于平均分的學(xué)生人數(shù)通過形參n傳回,平均分通過函數(shù)返回值返回。解題過程首先求得平均分,然后將所有成績(jī)與平均分進(jìn)行比較,如果大于或等于平均分,存入指定數(shù)組。
28.voidfun(charp1[]charp2[]){intij;for(i=0;p1[i]!='\0';i++);/*求出的i為p1字符的總長(zhǎng)度包括結(jié)束標(biāo)記位*/for(j=0;p2[j]!='\0';j++)p1[i++]=p2[j];/*將p2字符串連在p1字符串的后面*/p1[i]='\0';/*在字符串最后加上結(jié)束標(biāo)記符*/}voidfun(charp1[],charp2[])\r\n{\r\ninti,j;\r\nfor(i=0;p1[i]!='\\0';i++);/*求出的i為p1字符的總長(zhǎng)度,包括結(jié)束標(biāo)記位*/\r\nfor(j=0;p2[j]!='\\0';j++)\r\np1[i++]=p2[j];/*將p2字符串連在p1字符串的后面*/\r\np1[i]='\\0';/*在字符串最后加上結(jié)束標(biāo)記符*/\r\n}解析:本題用兩個(gè)循環(huán),第1個(gè)循環(huán)的作用是將i走到第1個(gè)字符串的末尾。第2個(gè)循環(huán)的作用是將第2個(gè)字符串的字符連到第1個(gè)字符串的末尾。
29.
解析:該程序功能是求一維整型數(shù)組元素中最大的值和它所在的下標(biāo)。其中,求最大元素的方法:用最大值變量nax標(biāo)記第一個(gè)待找數(shù)據(jù),逐個(gè)把所有待找數(shù)據(jù)和max進(jìn)行比較,并用max標(biāo)記其當(dāng)前最大值及其所在位置,從而找出最大值。
30.doublefun(intn){intij=0;doubles=0;for(i=3;i<=n;i++){for(j=2;j<i;j++)if(i%j==0)break;if(j==i)s=s+sqrt(i);}returns;}doublefun(intn)\r\n{\r\ninti,j=0;\r\ndoubles=0;\r\nfor(i=3;i<=n;i++)\r\n{\r\nfor(j=2;j<i;j++)\r\nif(i%j==0)\r\nbreak;\r\nif(j==i)\r\ns=s+sqrt(i);\r\n}\r\nreturns;\r\n}
31.voidfun(intxintpp[]int*n){intij=0for(i=2;i<=x;i=i+2)/*i的初始值為2步長(zhǎng)為2確保i為偶數(shù)*/if(x%i==0)/*將能整除x的數(shù)存入數(shù)細(xì)pp中*/pp[j++]=i*n=j/*傳回滿足條件的數(shù)的個(gè)數(shù)*/}voidfun(intx,intpp[],int*n)\r\n{\r\ninti,j=0\r\nfor(i=2;i<=x;i=i+2)/*i的初始值為2,步長(zhǎng)為2,確保i為偶數(shù)*/\r\nif(x%i==0)/*將能整除x的數(shù)存入數(shù)細(xì)pp中*/\r\npp[j++]=i\r\n*n=j/*傳回滿足條件的數(shù)的個(gè)數(shù)*/\r\n}解析:本題題干信息是;能整除x且不是奇數(shù)的所有整數(shù)。循環(huán)語句中i從2開始且每次增2,所以i始終是偶數(shù)。
32.intfun(intlimintaa[MAX]){intijk=0;for(i=2;i<=lim;i++)/*求出小于或等于lim的全部素?cái)?shù)*/{for(j=2;j<i;j++)if(i%j==0)break;if(j>=i)aa[k++]=i;;/*將求出的素?cái)?shù)放入數(shù)組aa中*/}returnk;/*返回所求出的素?cái)?shù)的個(gè)數(shù)*/}intfun(intlim,intaa[MAX])\r\n{\r\ninti,j,k=0;\r\nfor(i=2;i<=lim;i++)/*求出小于或等于lim的全部素?cái)?shù)*/\r\n{for(j=2;j<i;j++)\r\nif(i%j==0)break;\r\nif(j>=i)\r\naa[k++]=i;;/*將求出的素?cái)?shù)放入數(shù)組aa中*/\r\n}\r\nreturnk;/*返回所求出的素?cái)?shù)的個(gè)數(shù)*/\r\n}解析:在做這道題時(shí),我們只需掌握素?cái)?shù)的基本算法就可以了,一般表示素?cái)?shù)的方法如下:
for(j=2;j<i;j++)
if(i%j==0)break;
if(j>=i)
33.
解析:該程序功能是統(tǒng)計(jì)各年齡段的人數(shù)。本題中采用的是多if選擇語句,實(shí)現(xiàn)了不同年齡段的分支選擇。
34.
解析:函數(shù)fun的功能是計(jì)算并輸出3到n之間(含3和n)所有素?cái)?shù)的平方根之和,首先根據(jù)題干中的要求找出3到n之間的素?cái)?shù),并求出素?cái)?shù)的平方根,然后求得這些平方根的和。
35.DC語言不允許定義動(dòng)態(tài)數(shù)組,定義數(shù)組的大小必須為常量表達(dá)式。A選項(xiàng)錯(cuò)誤,C語言中的數(shù)組沒有此類型的定義方法;B選項(xiàng)錯(cuò)誤,定義數(shù)組應(yīng)指明數(shù)組大小,如果不指明數(shù)組大小,需要給定元素的個(gè)數(shù);C選項(xiàng)錯(cuò)誤,N為變量,不能用來定義數(shù)組大小。故本題答案為D選項(xiàng)。
36.C
37.Cf函數(shù)的功能是對(duì)形參a的各個(gè)成員用結(jié)構(gòu)體變量b的各個(gè)成員進(jìn)行賦值后,然后返回變量a。2022-2023學(xué)年山東省泰安市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(12題)1.若有如下程序:#definePI3.1415926#defineA(r)2*PI*rmain(){floata,1;a=3.0;1=A(a);printf("r=%.2f,1=%.2f\n",a,1);}則程序運(yùn)行后的輸出結(jié)果是()
A.r=3.001=18.85
B.3.00,18.85
C.r=3.0000001=18.8495555
D.r=3.01=18.8495555
2.下列敘述中正確的是()。
A.軟件測(cè)試應(yīng)該由程序開發(fā)者來完成
B.程序經(jīng)調(diào)試后一般不需要測(cè)試
C.軟件維護(hù)只包括對(duì)程序代碼的維護(hù)
D.以上三種說法都不對(duì)
3.有以下程序:#include<stdio.h>main(){inta=1,b=2,c=3,d=0;if(a==1&&b++==2) if(b!=2||c--!=3) printf(“%d,%d,%d\n”,a,b,c); elseprintf(“%d,%d,%d\n”,a,b,c);elseprintf(“%d,%d,%d\n”,a,b,c);}程序的運(yùn)行結(jié)果是()。
A.1,3,2B.1,3,3C.1,2,3D.3,2,1
4.一個(gè)二維數(shù)組的定義語句為“inta[3][4]={{3,4},{2,8,6}};”,則元素a[2][1]的值為()。
A.0B.4C.8D.6
5.現(xiàn)有如下程序段#include"stdio.h"main(){inta[5][6]={23,3,65,21,6,78,28;5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};inti=0,j=5;printf("%d\n",*(&a[0][0]+2*i+j-2));}則程序的輸出結(jié)果為
A.21B.78C.23D.28
6.設(shè)有定義“Charp[]={‘1’,‘2’,‘3’},*q=p;”,以下不能計(jì)算出一個(gè)char型數(shù)據(jù)所占字節(jié)數(shù)的表達(dá)式是()。A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])
7.
8.
A.if(x>0)y=1;elseif(x==0)y=0;elsey=-1;
B.y=0;if(x>0)y=1;elseif(x<0)y=-1;
C.y=0;if(x>=0)if(x>0)y=1;e1sey=-1;
D.if(x>=0)if(x>0)y=1;elsey=0:elsey=-1;
9.下述程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){chara=1,b=2;charc=a^b<<2;printf("\n%d",C);}
A.9B.10C.12D.2
10.層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫劃分原則是()。
A.記錄長(zhǎng)度B.文件的大小C.聯(lián)系的復(fù)雜程度D.數(shù)據(jù)之間的聯(lián)系方式
11.
12.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。A.1B.11C.7D.9
二、2.填空題(12題)13.以下程序的定義語句中,x[1]的初值是【】,程序運(yùn)行后輸出的內(nèi)容是【】。
#include<stdio.h>
main()
{intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;
for(i=0;i<4;i++)
{p[i]=&x[2*i+1];
printf("%d",p[i][0]);
}
printf("\n");)
}
14.下面函數(shù)用來求兩個(gè)單精度數(shù)之和,并通過形參將結(jié)果傳回,請(qǐng)?zhí)羁铡?/p>
voidsub(floatx,floaty,【】z)
{【】=x+y;}
15.表示條件;10<x<100或x<0的C語言表達(dá)式是【】。
16.下列程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{charb[]="Helloyou";
b[5]=0;
printf("%s\n",b);
}
17.以下程序的輸出結(jié)果是【】。
main()
{unsignedshorta=65536;intb;
printfC%d\n",b=a);
}
18.如下程序片段:
ina,b,c;
printf("inputa,b,c:");
scanf("a=%d,b=%d,c=%d",&a,&b,&c);
欲使輸出結(jié)果為1、2、3(分別對(duì)應(yīng)于a、b、c),輸入數(shù)據(jù)的正確形式為【】。
19.與表達(dá)式a+=b等價(jià)的另一書寫形式是______。
20.觀察題目要求,可以知道以下幾點(diǎn):}
21.strcmp函數(shù)的功能是【】。
22.設(shè)有以下定義和語句,則*(*(p+2)+1)的值為【】。
inta[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
23.若x為血類型,請(qǐng)寫出與!x等價(jià)的C語言表達(dá)式______。
24.已定義charch=′$′;inti=1,j;,執(zhí)行j!=ch&&i++以后,i的值為【】。
三、3.程序設(shè)計(jì)題(10題)25.請(qǐng)編寫一個(gè)函數(shù)fun(),它的功能是:將ss所指字符串中所有下標(biāo)為偶數(shù)位置的字母轉(zhuǎn)換為小寫(若該位置上不是字母,則不轉(zhuǎn)換)。
例如,若輸入ABC4efG,則應(yīng)輸出aBc4efg。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)miain和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
voidfun(char*SS)
{
}
main()
{
chartt[81];
clrscr();
printf("\nPleaseenteranstringwithin80
characters:\n");
gets(tt);
printf("\n\nAfterchanging,thestring\n
\%s",tt);
fun(tt);
printf("\nbecomes\n\%S\n",tt);
}
26.程序定義了NxN的二維數(shù)組,并在主函數(shù)中賦值。請(qǐng)編寫函數(shù)fun,函數(shù)的功能是:求出數(shù)組周邊元素的平均值并作為函數(shù)值返給主函數(shù)中的s。
例如:a數(shù)組中的值為:
則返回主程序后s的值應(yīng)為:3.375。
注意:部分源程序存在文件PROGl.C文件中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。
27.學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,請(qǐng)編寫函數(shù)fun,它的功能是:把高于等于平均分的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中,高于等于平均分的學(xué)生人數(shù)通過形參n傳回,平均分通過函數(shù)值返回。
注意:部分源程序在文件PROGl.C文件中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。
28.編寫一個(gè)函數(shù)fun(),它的功能是:實(shí)現(xiàn)兩個(gè)字符串的連接(不使用庫函數(shù)strcat,即把p2所指的字符串連接到p1所指的字符串后。
例如,分別輸入下面兩個(gè)字符串:
FirstString
SecondString
則程序輸出:
FirstStringSecondString
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)小填入所編寫的若干語句。
試題程序:
#include<stdio.h>
#include<conio.h>
voidfun(charpi[],charp2[])
{
}
main()
{
chars1[80],s2[40];
clrscr();
printf("Enters1ands2:\n");
scanf("%s%s",s1,s2);
printf("s1=%s\n",s1);
printf("s2=%s\n",s2);
printf("Invokefun(s1,s2):\n");
fun(s1,s2);
printf("Afterinvoking:\n");
printf("%s\n",s1);
}
29.請(qǐng)編寫一個(gè)函數(shù)fun,它的功能是:找出一維整型數(shù)組元素中最大的值和它所在的下標(biāo),最大的值和它所在的下標(biāo)通過形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。
主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個(gè)數(shù),max存放最大值,index存放最大值所在元素的下標(biāo)。
注意:部分源程序存在文件PROGl.C文件中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。
30.請(qǐng)編寫函數(shù)fun,其功能是:計(jì)算并輸出3到n之間(含3和n)所有素?cái)?shù)的平方根之和。
例如,在主函數(shù)中從鍵盤給n輸入100后,輸出為:sum=148.874270。
注意:要求n的值大于2但不大于100。部分源程序給出如下。清勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。
[試題源程序]
#include<math.h>
#include<stdio.h>
doublefun(intn)
{
}
main()
{
intn;
doublesum;
printf("\n\nInputn:");
scanf("%d",&n);
sum=fun(n);
printf("\n\nsum=%f\n\n",sum);
}
31.請(qǐng)編寫函數(shù)voidfun(intx,intpp[],int*n),它的功能是求出能整除x且不是奇數(shù)的各整數(shù),并按從小到大的順序放在pp所指的數(shù)組中,這些除數(shù)的個(gè)數(shù)通過形參n返回。
例如,若x中的值為24,則有6個(gè)數(shù)符合要求,它們是2,4,6,8,12,24。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
voidfun(intx,intPP[],int*n)
{
}
main()
{
intx,aa[1000],n,i;
clrscr();
printf("\nPleaseenteranintegernumber:
\n");
scanf("%d",&X);
fun(x,aa,&n);
for(i=0;i<n;i++)
printf("%d",aa[i]);
printf("\n");
}
32.編寫函數(shù)intfun(intlim,intaa[MAX]),該函數(shù)的功能是求出小于或等于lim的所有素?cái)?shù)并放在aa數(shù)組中,該函數(shù)返回所求出的素?cái)?shù)的個(gè)數(shù)。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
#defineMAX100
intfun(intlim,intse[MAX])
{
}
main()
{
intlimit,i,sum;
intaa[MAX];
clrscr();
printf("輸入一個(gè)整數(shù)");
scanf("%d",&limit);
sum=fun(limit,aa);
for(i=0;i<sum;i++)
{
if(i%10==0&&i!=0)/*每行輸出10個(gè)數(shù)*/
printf("\n");
printf("%5d",aa[i]);
}
}
33.請(qǐng)編寫函數(shù)fun,函數(shù)的功能是:統(tǒng)計(jì)各年齡段的人數(shù)。N個(gè)年齡通過調(diào)用隨機(jī)函數(shù)獲得,并放在主函數(shù)的age數(shù)組中;要求函數(shù)把O至9歲年齡段的人數(shù)放在d[0]中,把10至19歲年齡段的人數(shù)放在d[1],把20至29歲年齡段的人數(shù)放在d[2]中,其余依此類推,把100歲(含100)以上年齡的人數(shù)都放在d[10]中。結(jié)果在主函數(shù)中輸出。
注意:部分源程序在文件PROGl.C中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。
34.請(qǐng)編寫函數(shù)fun,其功能是:計(jì)算并輸出3到n之間(含3和n)所有素?cái)?shù)的平方根之和。
例如,在主函數(shù)中從鍵盤給n輸入100后,輸出為:sum=148.874270。
注意:要求n的值大于2但不大于100。部分源程序在文件PROGl.C中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。
四、單選題(0題)35.下列選項(xiàng)中,能正確定義數(shù)組的語句是()。
A.intnum[0..2008];
B.intnum[];
C.intN=2008;intnum[N];
D.#defineN2008;intnum[N];
五、單選題(0題)36.設(shè)有關(guān)鍵碼初始化序列{Q,H,C,Y,P,A,M,S,R,D,F,X},新序列{F,H,C,D,P,A,M,Q,R,S,Y,X}是采用()方法對(duì)初始序列精細(xì)第一堂排序的結(jié)果。
A.直接插入排序B.二路歸并排序C.快速排序D.基數(shù)排序
六、單選題(0題)37.
有以下程序
#include<stdio.h>
#include<string.h>
typedefstrlIct{charname[9];charsex;floatscore[2];}STU;
STUf(STUa)
{STUb={"Zhao",m,85.0,90.0);inti;
strcpy(aname,b.name);
sex:b.sex;
for(i=0;i<2;i++)a.score[i]=b.score[i];
returna;
}
main
{STUc="Qian",f,95.0,92.0},d;
d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);
}
程序的運(yùn)行結(jié)果是()。
A.Qian,f,95,92
B.Qian,m,85,90
C.Zhao,m,85,90
D.Zhao,f,95,92
參考答案
1.A
2.D程序調(diào)試是由程序開發(fā)者完成診斷和改正程序中的錯(cuò)誤的過程;軟件測(cè)試是由專門的測(cè)試人員完成,是發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程;軟件維護(hù)是指軟件系統(tǒng)交付使用以后,為了改正錯(cuò)誤或滿足新的需要而修改軟件的過程,是軟件生存周期中非常重要的一個(gè)階段。
3.Belse總是和最近的if配對(duì)。進(jìn)入第1個(gè)if語句進(jìn)行條件判斷時(shí),因?yàn)槭沁x輯與操作,需要兩邊運(yùn)算對(duì)象的值均為非零值才為真,所以需要逐個(gè)執(zhí)行判斷。結(jié)果為1,進(jìn)入第2個(gè)if語句進(jìn)行條件判斷。因?yàn)椤癰!=2”條件成立,所以整個(gè)條件表達(dá)式的值為真,不再執(zhí)行邏輯或的第2個(gè)運(yùn)算對(duì)象“(c--!=3)”變量c的值不變,也不再執(zhí)行第1個(gè)else語句。輸出a的值1,b的值3,c的值3。故本題答案為B選項(xiàng)。
4.A
5.A解析:通過地址來引用二維數(shù)組,若有以下定義:inta[3][4],i,j;且當(dāng)0≤i≤3,0≤j<4則可以有以下幾種方式來引用數(shù)組中的第i行,第j列的元素:\ue008a[i][j]\ue009,\ue008*(a[i]+j),\ue009*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。表達(dá)式&a[0][0]+2*i+j-2相當(dāng)于是地址&a[0][0]加上多少偏移量。
6.A根據(jù)題目中的定義可知,“sizeof(p)”計(jì)算的是數(shù)組p中所有元素所占用的字節(jié)數(shù),而不是char型數(shù)據(jù)所占的字節(jié)數(shù)。故本題答案為A選項(xiàng)。
7.C
8.C解析:選項(xiàng)A的意思是:在x>O情況下,y為1,否則,在x=O時(shí),y為0,剩下x<O時(shí),y為-1,滿足本題中函數(shù)的要求。選項(xiàng)B描述的意思是:初始化y的值為0,在x>O時(shí),給y重新賦值為1,否則,在x<O時(shí),給y重新賦值為-1,滿足本題中函數(shù)的要求。選項(xiàng)C描述的意思是:在x>=0情況下,如果x>O,則y為1,否則,即x==0時(shí),y為-1;剩下的x<O時(shí),y為0。可見答案C實(shí)現(xiàn)的結(jié)果不是給定的表達(dá)式。選項(xiàng)D中描述的意思是:在x>=0的情況下,如果x>O,就給y賦值為1,否則即x==0時(shí)給y賦值為0,在不是x>=0的其他情況下,就給y賦值為-1,滿足本題中函數(shù)的要求。所以4個(gè)選項(xiàng)中C為所選。
9.A
10.D層次模型的基本結(jié)構(gòu)是樹形結(jié)構(gòu),網(wǎng)狀模型是一個(gè)不加任何條件限制的無向圖,關(guān)系模型采用二維表來表示,所以三種數(shù)據(jù)庫的劃分原則是數(shù)據(jù)之間的聯(lián)系方式。
11.C
12.D題干中,函數(shù)fun的功能是將二維數(shù)組p的行下標(biāo)為1、列下標(biāo)為1的元素(p[1][1])的值賦給二維地址s指向的*s所指向的存儲(chǔ)單元。main函數(shù)中定義了整型指針p,動(dòng)態(tài)分配了整型長(zhǎng)度的內(nèi)存空間,調(diào)用函數(shù)fun將數(shù)組元素a[1][1],即9賦給p所指向的空間。本題答案為D選項(xiàng)。
13.224682,2468解析:在主函數(shù)中根據(jù)整型數(shù)組x[]的定義可知,x[1]的初值等于2。在for循環(huán)語句中,當(dāng)i=0時(shí),p[0]=&x[1],p[0][0]=2;當(dāng)i=1時(shí),p[1]=&x[3],p[1][0]=4;當(dāng)i=2時(shí),p[2]=&x[5],p[2][0]=6;當(dāng)i=3時(shí),p[3]=&x[7],\ue008p[3][0]\ue009=8,所以程序輸出的結(jié)果為2、4、6、8。
14.float**zfloat*\r\n*z解析:C程序中可以通過傳送地址的方式在被調(diào)用函數(shù)中直接改變被調(diào)用函數(shù)中變量的值,從而達(dá)到函數(shù)之間數(shù)據(jù)的傳遞。
15.(x>10&&x<100)||x<0
16.HelloHello解析:語句b[5]=0;相當(dāng)于語句b[5]='\\0';且'\\0'為字符串結(jié)束標(biāo)志,輸出時(shí)遇到'\\0'就停止輸出。
17.00解析:對(duì)于一個(gè)unsignedshort來說,它能取的最大值是65535。這里給a賦值65536,已經(jīng)超出了它的取值范圍,這樣它的高位將被截掉,只把低位賦給它(全零)。所以a的值實(shí)際為0。
18.a=1b=2c=3a=1,b=2,c=3解析:此題考查了scanf函數(shù)的輸入格式。scanf函數(shù)的輸入格式規(guī)定如果兩個(gè)格式說明項(xiàng)間有一個(gè)或多個(gè)普通字符,那么在輸入數(shù)據(jù)時(shí),在兩個(gè)數(shù)據(jù)之間也必須以這一個(gè)或多個(gè)字符作為分隔符。
19.a=a+ba=a+b解析:a+=b與a=a+b等價(jià),作用是把變量a的值加b后再賦給變量a。
20.p=i;i>=pi<=Np=i;\r\ni>=p\r\ni<=N解析:本題主要考查了插入排序。由于程序中的數(shù)組在開始已經(jīng)按從小到的大順序排好。在插入時(shí),首先要查到第一個(gè)大于待插入數(shù)的數(shù)組下標(biāo),即當(dāng)待插入元素小于數(shù)組中當(dāng)前元素時(shí),記下數(shù)組的當(dāng)前下標(biāo)p,并結(jié)束循環(huán)。故第一空目的是為了記下數(shù)組下標(biāo),應(yīng)填p=i;插入的第二部是將大于待插入元素的所有元素都向后移動(dòng)一位,故在循環(huán)時(shí),要從最后一個(gè)元素到第p個(gè)元素都要后移一位,因此第二空應(yīng)填i>=p。最后一個(gè)循環(huán)是將N+1個(gè)元素都輸出,故最后一空應(yīng)為i<=N。(注:本題有多種答案,以上僅提供一種)
21.字符串的比較strcmp函數(shù)的原型是intstrcmp(char*s1,char*s2);功能是對(duì)s1和s2所指字符串進(jìn)行比較,若s1<s2返回負(fù)數(shù),若s1==s2返回0,若s1>s2返回正數(shù)。
22.6060解析:程序中定義a是一個(gè)3行2列的二維數(shù)組,p是指向兩個(gè)元素的一維數(shù)組指針,并讓p指向二維數(shù)組a的首行。則代碼*(*(p+2)+1)中的p+2指向二維數(shù)組a的第三行a[2],*(p+2)指向a[2[]0],*(p+2)+1指向a[2][1],*(*(p+2)+1)是引用a[2][1],其值是60。
23.x==0x==0解析:!x的邏輯意思就是x為非,即x==0。
24.11解析:在執(zhí)行邏輯表達(dá)式'j=!ch&&i++'時(shí),首先判斷j=!ch的值,因?yàn)?ch=\'$\''不為0,所以'j=!ch=0',編譯系統(tǒng)便不再計(jì)算表達(dá)式'i++'的值,i的值不變,仍為1。
25.voidfun(char*ss){inti;for(i=0;ss[i]!='\0'i++)/*將ss所指字符串中所有下標(biāo)為偶數(shù)位置的字母轉(zhuǎn)換為小寫*/if(i%2==0&&ss[i]>='A'&&ss[i]<='z')ss[i]=ss[i]+32;}voidfun(char*ss)\r\n{\r\ninti;\r\nfor(i=0;ss[i]!='\\0'i++)/*將ss所指字符串中所有下標(biāo)為偶數(shù)位置的字母轉(zhuǎn)換為小寫*/\r\nif(i%2==0&&ss[i]>='A'&&ss[i]<='z')\r\nss[i]=ss[i]+32;\r\n}解析:從C語言的學(xué)習(xí)中我們知道,只要將小寫字母減去32則轉(zhuǎn)成大寫字母,將大寫字母加上32則轉(zhuǎn)成小寫字母。該程序是用if語句實(shí)現(xiàn)該功能轉(zhuǎn)化的。
26.
解析:該程序功能是求出數(shù)組周邊元素的平均值。其中周邊元素是指第一行的元素的行下標(biāo)為0,或者第n行的元素行下標(biāo)為n-1,或
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電大動(dòng)畫概論試題及答案
- 移動(dòng)終端考試題及答案
- 銷售談判的策略與技巧試題及答案
- 中建筑港公司勞務(wù)合同范例
- 鄉(xiāng)村蘑菇售賣合同樣本
- fof基金合同范例
- j建筑勞務(wù)合同范例
- 農(nóng)用拖車采購合同樣本
- 軍械設(shè)備采購合同范例
- 買賣套餐合同范例
- DB32T-無錫水蜜桃標(biāo)準(zhǔn)
- 古詩詞誦讀《登岳陽樓》公開課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)統(tǒng)編版高中語文必修下冊(cè)
- 2024版工廠并購協(xié)議書范本
- 中職班主任培訓(xùn)講座
- 2024年河北省中考化學(xué)真題(含解析)
- 2024至2030年中國3C電子產(chǎn)品租賃行業(yè)市場(chǎng)運(yùn)行現(xiàn)狀及投資戰(zhàn)略研究報(bào)告
- 2024年廣東省高考化學(xué)試卷(真題+答案)
- 教科版六年級(jí)下冊(cè)科學(xué)期末測(cè)試卷含完整答案(各地真題)
- JT-T-1198-2018公路交通噪聲防護(hù)措施分類及技術(shù)要求
- 暢銷書營(yíng)銷分析報(bào)告
- 2024學(xué)年(上)廈門市九年級(jí)質(zhì)量檢測(cè)化學(xué)試題及答案
評(píng)論
0/150
提交評(píng)論