![2022-2023年吉林省遼源市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)知識點(diǎn)匯總卷(含答案)_第1頁](http://file4.renrendoc.com/view/db0e468d59dbfe31bff333eed53451ca/db0e468d59dbfe31bff333eed53451ca1.gif)
![2022-2023年吉林省遼源市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)知識點(diǎn)匯總卷(含答案)_第2頁](http://file4.renrendoc.com/view/db0e468d59dbfe31bff333eed53451ca/db0e468d59dbfe31bff333eed53451ca2.gif)
![2022-2023年吉林省遼源市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)知識點(diǎn)匯總卷(含答案)_第3頁](http://file4.renrendoc.com/view/db0e468d59dbfe31bff333eed53451ca/db0e468d59dbfe31bff333eed53451ca3.gif)
![2022-2023年吉林省遼源市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)知識點(diǎn)匯總卷(含答案)_第4頁](http://file4.renrendoc.com/view/db0e468d59dbfe31bff333eed53451ca/db0e468d59dbfe31bff333eed53451ca4.gif)
![2022-2023年吉林省遼源市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)知識點(diǎn)匯總卷(含答案)_第5頁](http://file4.renrendoc.com/view/db0e468d59dbfe31bff333eed53451ca/db0e468d59dbfe31bff333eed53451ca5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2022-2023年吉林省遼源市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)知識點(diǎn)匯總卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.有以下程序#include<stdio.h>intfun(intx;inty){if(x=y(tǒng))reurn(x);elsereturn((x+y)/2);}main(){inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c)));}程序運(yùn)行后的輸出結(jié)果是______。A.3B.6C.8D.12
2.在以下一組運(yùn)算中,優(yōu)先級最高的運(yùn)算符是()
A.<=B.=C.%D.&&
3.有以下程序:main{inti,j;for(j=10;j<11;j++){for(i=9;i<j;i++)if(!(j%i))break;if(i==j-1)printf("%d",j);}}輸出結(jié)果是()。A.11B.10C.9D.1011
4.有以下程序:#include<stdio.h>voidfun(doublex,double*y,double*z){*y=*y-1.0;*z=*z+x;}main(){doublea=2.5,b=9.0,*pa,*pb;pa=&a;pb=&b;fun(b-a,pa,pb);printf(“%f\n”,a);}程序運(yùn)行后的輸出結(jié)果是()。
A.8.000000B.9.000000C.1.500000D.10.500000
5.合法的數(shù)組初始化語句是()。
A.chara="string";
B.inta[5]={0,1,2,3,4,5};
C.inta[]="string"
D.chara[]={0,1,2,3,4,5};
6.
7.已知大寫字母A的ASCII碼是65,小寫字母a的ACSII碼是97。下列能將變量C中的大寫字母轉(zhuǎn)換為對應(yīng)小寫字母的語句是()。
A.c=(c-'A')%26+'A'B.c=c+32C.c=c-'A'+'A'D.c=('A'+C)%26-'a'
8.能在O(1)時間內(nèi)訪問線性表的第i個元素的結(jié)構(gòu)是()
A.順序表B.單鏈表C.單向循環(huán)鏈表D.雙向鏈表
9.以下敘述中錯誤的是()。
A.C語句必須以分號結(jié)束
B.復(fù)合語句在語法上被看作一條語句
C.空語句出現(xiàn)在任何位置都不會影響程序運(yùn)行
D.賦值表達(dá)式末尾加分號就構(gòu)成賦值語句
10.軟件生命周期可分為定義階段、開發(fā)階段和維護(hù)階段。詳細(xì)設(shè)計(jì)屬于()。
A.定義階段B.開發(fā)階段C.維護(hù)階段D.上述三個階段
11.若查找每個記錄的概率均等,則在具有n個記錄的連續(xù)順序文件中采用順序查找法查找一個記錄,其平均查找長度ASL為()
A.(n-1)/2B.n/2C.(n+1)/2D.n
12.以下敘述中正確的是A.局部變量說明為static存儲數(shù),其生存期將得到延長
B.全局變量說明為static存儲類,其作用域?qū)⒈粩U(kuò)大
C.任何存儲類的變量在未賦初值時,其值都是不確定的
D.形參可以使用的存儲類說明符與局部變量完全相同
13.
下述程序的輸出結(jié)果是()。
#include<stdio.h>
voidmain
{intb[6]={2,4,6,8,10,12);
int*p=b,**q=&p;
printf("%d,",*(p++));
printf("%d,",**q);
}
A.4,4B.2,2C.4,5D.2,4
14.若有下列說明語句int(*p)();則標(biāo)識符p代表的是()
A.一個用于指向函數(shù)的指針變量,函數(shù)返回值的類型為int型
B.一個帶回值類型為整型的函數(shù)名
C.一個用于指向整型數(shù)據(jù)的指針變量
D.一個帶回值類型為指針類型的函數(shù)名
15.
16.若一棵二叉樹具有10個度為2的結(jié)點(diǎn),5個度為1的結(jié)點(diǎn),則度為0的結(jié)點(diǎn)的個數(shù)是()。
A.9B.11C.15D.不能確定
17.以下選項(xiàng)中不能用作C語言程序合法常量的是()。
A.123B.‘\123’C.1,234D.“\x7D”
18.有如下嵌套的if語句:if(a<b)if(a<c)k=a;elsek=C:elseif(b<c)k=b;elsek=C;以下選項(xiàng)中與上述if語句等價的語句是()。A.k=(a<b)?a:b;k=(b<c)?b:C;
B.k=(a<b)?((b<c)?a:b):((b>c)?b:c);
C.k=(a<b)?((a<c)?a:c):((b<c)?b:c);
D.k=(a<b)?a:b;k=(a<c)?a:c;
19.設(shè)有定義:intn=0,*p=&n,**q=&p;則以下選項(xiàng)中,正確的賦值語句是()A.p=1;B.*q=2;C.q=p;D.*p=5;
20.有以下程序:main(){inta[][3]={{1,2,3),{4,5,0)),(*pa)[3],i;pa=a;for(i=0;i<3;i++)if(i<2)pa[1][i]=pa[1][i]-1;elsepa[1][i]=1;printf("%d\n",a[0][1]+a[1][1]+a[1][2]);}執(zhí)行后輸出結(jié)果是()。
A.7B.6C.8D.無確定值
二、2.填空題(20題)21.某二叉樹中度為2的節(jié)點(diǎn)有18個,則該二叉樹中有()個葉子節(jié)點(diǎn)。
22.設(shè)一棵完全二叉樹共有700個結(jié)點(diǎn),則在該二叉樹中有【】個葉子結(jié)點(diǎn)。
23.關(guān)系模型的完整性規(guī)則是對關(guān)系的某種約束條件,包括實(shí)體完整性、______和自定義完整性。
24.數(shù)據(jù)元素之間______的整體稱為邏輯結(jié)構(gòu)。
25.以下程序輸出矩陣中值為。的元素的行下標(biāo)和列下標(biāo)。行下標(biāo)和列下標(biāo)分別放在同一下標(biāo)的r和c數(shù)組元素中。程序通過調(diào)用隨機(jī)函數(shù)給矩陣賦值。
#defineN5
#include<stdlib.h>
main()
{inta[N][N],i,j,c[N*N],r[N*N],n;
for(i=0,i<N;i++)
for(j=0;j<N;j++)a[i][j]=rand()%5;
n=gindex(【】);
printf("\n\nTheresult:\nn=%d\n",n);
for(i=0;i<n;i++)printf("%4d%4d\n",r[i],c[i]);
}
intgindex(int(*p)[N],int*c,int*r)
{inti,j,k;
【】;
for(i=0;i<N,i++)
for(j=0;j<N;j++)
if(【】==0)
{r[k]=i;c[k]=j;【】;}
return【】;
}
26.以下程序運(yùn)行時,若從鍵盤輸入:102030<回車>,輸出的結(jié)果是【】。
#include<stdio.h>
main()
{inti=0,j=0,k=0;
scanf("%d%*d%d",&i,&j,&k);
prinff("%d%d%d\n",i,j,k);
}
27.以下程序的功能是:將輸入的正整數(shù)按逆序輸出。例如:若輸入135則輸出531。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{intn,s;
printf("Enteranumber:");scanf("%d",&n);
printf("Output:");
do
{s=n%10;printf("%d",s);【】;
}while(n!=0);
printf("\n");
}
28.以下程序運(yùn)行后的輸出結(jié)果是【】。
main()
{intx=10,y=20,t=0;
if(x==y)t=x;x=Y;Y=t;
printf(“%d,%d\n”,x,y);
}
29.若x,y和z均是int型變量,則執(zhí)行下面表達(dá)式后的x值為【】。
x=(y=4)+(z=2)
30.問題處理方案的正確而完整的描述稱為______。
31.若有定義inta=10,b=9,c=8;,接著順序執(zhí)行下列語句,變量b中的值是【】。
c=(a-=(b-5));
c=(a%11)+(b=3);
32.以下程序中函數(shù)fun的功能是:構(gòu)成一個如圖所示的帶頭結(jié)點(diǎn)的單向鏈表,在結(jié)點(diǎn)的數(shù)據(jù)域中放入了具有兩個字符的字符串。函數(shù)disp的功能是顯示輸出該單鏈表中所有結(jié)點(diǎn)中的字符串。請?zhí)羁胀瓿珊瘮?shù)disp。
#include<stdio.h>
typedefstructnode/*鏈表結(jié)點(diǎn)結(jié)構(gòu)*/
{charsub[3];
structnode*next;
}Node;
Nodefun(chars)/*建立鏈表*/
{……}
voiddisp(Node*h)
{Node*p;
p=h->next;
while(【】)
{printf("%s\n",P->sub);p=【】;}
}
main()
{Node*hd;
hd=fun();disp(hd);printf("\n");
}
33.下面程序的運(yùn)行結(jié)果是【】。
main()
{inty,a;
y=2,a=1;
while(y--!=-1)
{do{a*=y;a++;}while(y--);}
printf("%d,%d",a,y);}
34.若有以下程序:
main()
{inta=4,b=3,c=5,t=0;
if(a<b)t=a;a=b;b=t;
if(a<c)t=a;a=c;c=t;
printf("%d%d%d\n",a,b,c);
}
執(zhí)行后的輸出結(jié)果是【】。
35.執(zhí)行以下for語句后,變量i的值是【】。
for(i=1;i++<=5;);
36.用以下程序計(jì)算1到100的整數(shù)的累加和。請?zhí)羁铡?/p>
main()
{inti,sum=【】;
i=1;
for(【】)
{sum+=j(luò)
i++;
}
printf("sum=%d\n",【】);
}
37.以下程序的運(yùn)行結(jié)果是()。
intk=0;
voidfun(intm)
{m+=k;k+=m;printf("m=%d\nk=%d",m,k++);}
main()
{inti=4;
fun(i++);printf("i=%dk=%d\n",i,k);
}
38.在關(guān)系數(shù)據(jù)庫中把數(shù)據(jù)表示成二維表,每一個二維表稱為【】。
39.以下程序的功能是:利用指針向三個整型變量,并通過指針運(yùn)算找出三個數(shù)中最大值,輸出到屏幕上。請?zhí)羁?/p>
main()
{intx,y,z,max,*px,*py,*pz,*pmax;
scanf("%d%d%d",&x,&y,&z);
px=&x;py=&y;pz=&z;pmax=&max;
if(*pmax<*py)*pmax=*py;
if(*pmax<*pz)*pmax二*pz;
printf("max=%d\n",max);}
40.以下程序運(yùn)行后的輸出結(jié)果是【】。
#defineS(x)4*x*x+1
main()
{inti=6,j=8;
printf("%d\n",S(i+j));
}
三、1.選擇題(20題)41.以下選項(xiàng)中可作為C語言合法常量的是
A.-80B.-080C.-8e1.0D.-80.0e
42.下列敘述中錯誤的是()。
A.一個C語言程序只能實(shí)現(xiàn)一種算法
B.c程序可以由多個程序文件組成
C.C程序可以由一個或多個函數(shù)組成
D.一個c函數(shù)可以單獨(dú)作為一個C程序文件存在
43.信息隱蔽的概念與下述哪一種概念直接相關(guān)()。
A.軟件結(jié)構(gòu)定義B.模塊獨(dú)立性C.模塊類型劃分D.模塊耦合度
44.有以下程序main(){chara[]="abcdefg",b[10]="abcdefg";printf("%d%d\n",sizeof(a),sizeof(b));}執(zhí)行后輸出結(jié)果是
A.77B.88C.810D.1010
45.下列程序段中,不能正確賦值的是
A.char*p,ch;p=&ch;scanf("%c,&p")
B.char*p;p=(char*)malloc(1)scanf("%c",p);
C.char*p*p=getchar();
D.char*p,ch;p=&ch;*p=getchar();
46.軟件工程的出現(xiàn)是由于()。A.A.程序設(shè)計(jì)方法學(xué)的影響B(tài).軟件產(chǎn)業(yè)化的需要C.軟件危機(jī)的出現(xiàn)D.計(jì)算機(jī)的發(fā)展
47.有以下程序:#include<string.h>main(){charstr[][20]={"Hello","Beijing"},*p=str;printf("%d\n",strlen(p+20));}程序運(yùn)行后的輸出結(jié)果是______。
A.0B.5C.7D.20
48.下列程序的輸出結(jié)果是#include"stdio.h"#defineM(x,y)x%ymain(){inta,m=12,n=100;a=M(n,m);printf("%d\n",a--);}
A.2B.3C.4D.5
49.以下函數(shù)的功能是()intfun(char*A){char*b=a;while(*B)b++;{returnb-a;}}
A.比較兩個字符串的大小B.字符串的復(fù)制C.計(jì)算字符串的長度D.字符串的連接
50.若有以下定義和語句:intu=010,v=0x10,w=10;printf("%d,%d,%d\n",u,v,w);則輸出結(jié)果是()
A.8,16,10B.10,10,10C.8,8,10D.8,10,10
51.下列說法不正確的是()。
A.C語言程序是以函數(shù)為基本單位的,整個程序由函數(shù)組成
B.C語言程序的一條語句可以寫在不同的行上
C.C語言程序的注釋行對程序的運(yùn)行功能不起任何作用,所以注釋應(yīng)該盡可能少寫
D.C語言程序的每個語句都以分號結(jié)束
52.有以下程序inta=2;intf(int*a){return(*a)++;}main()ints=0;{inta=5;s+=f(&a);}s+=f(&a);printf("%d\n",s);執(zhí)行后輸出結(jié)果是
A.10B.9C.7D.8
53.下列對于軟件測試的描述中正確的是()。
A.軟件測試的目的是證明程序是否正確
B.軟件測試的目的是使程序運(yùn)行結(jié)果正確
C.軟件測試的目的是盡可能多地發(fā)現(xiàn)程序中的錯誤
D.軟件測試的目的是使程序符合結(jié)構(gòu)化原則
54.有以下程序:main(){inti=10,j=1;printf("%d,%d\n",i--,++j);}執(zhí)行后輸出結(jié)果是()。
A.9,2B.10,2C.9,1D.10,1
55.待排序的關(guān)鍵碼序列為15,20,9,30,67,65,45,90,要按關(guān)鍵碼值遞增的順序排序,采取簡單選擇排序法,第一趟排序后關(guān)鍵碼15被放到第()個位置。
A.2B.3C.4D.5
56.有如下程序main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}該程序的輸出結(jié)果是
A.69825B.63825C.6385D.693825
57.結(jié)構(gòu)化程序設(shè)計(jì)的核心和基礎(chǔ)是()。
A.結(jié)構(gòu)化分析方法B.結(jié)構(gòu)化設(shè)計(jì)方法C.結(jié)構(gòu)化設(shè)計(jì)理論D.結(jié)構(gòu)化編程方法
58.有以下程序main(){inta=666,b=888;printf("%d\n",a,B);}程序運(yùn)行后的輸出結(jié)果是
A.錯誤信息B.666C.888D.666,888
59.以下程序的運(yùn)行結(jié)果是()#include<stdio.h>main(){inta=015,b=22;printf("%d,%d\n",a++,--b);}
A.15,22B.15,21C.13,21D.14,21
60.設(shè)Y為整型變量,A=1,A的地址為EF01;B=2,B的地址為EF02;執(zhí)行語句B=&A;Y=&b;后Y的值()。
A.1B.2C.EF01D.EF02
四、選擇題(20題)61.HTTP協(xié)議的消息有()兩種類型。
A.發(fā)送消息和接收消息B.請求消息和響應(yīng)消息C.消息頭和消息體D.實(shí)體消息和控制消息
62.對字符數(shù)組s賦值,不合法的一個是()。
A.chars[]="Beijing"
B.chars[20]={"Beijing"}
C.chars[20];s="Beijing"
D.chars[20]={’B,’e’,’i’,’j’,’i’,’n’,’g’}
63.
64.關(guān)于以下程序段的描述,正確的是
x=-1;
do
{x=x*x-1;}while(!x);
A.是死循環(huán)B.循環(huán)執(zhí)行兩次
C.循環(huán)執(zhí)行一次D.有語法錯誤
65.
66.下面程序運(yùn)行后的輸出結(jié)果是()。
structabc
{
inta,b,c;
}
main()
{
structabcs[2]={{1,2,3},{4,5,6}};
intt;
t=s[0].a+s[1].b;
printf("%d\n",t);
}
A.5B.6C.7D.8
67.以下語句中存在語法錯誤的是()。
68.為了避免嵌套的條件分支語句if—else的二義性,C語言規(guī)定:C程序中的else總是與_____組成配對關(guān)系。
A.縮排位置相同的ifB.在其之前未配對的ifC.在其之前未配對的最近的ifD.同一行上的if
69.下列敘述中正確的是()。
A.循環(huán)隊(duì)列是隊(duì)列的一種鏈?zhǔn)酱鎯Y(jié)構(gòu)
B.循環(huán)隊(duì)列是隊(duì)列的一種順序存儲結(jié)構(gòu)
C.循環(huán)隊(duì)列是非線性結(jié)構(gòu)
D.循環(huán)隊(duì)列是一種邏輯結(jié)構(gòu)
70.有以下程序:則以下函數(shù)調(diào)用語句錯誤的是()。.
A.k=f(a,B.;B.k=add(a,B.;C.k=(*f)(a,B.;D.k={f(a,B.;
71.
72.
有以下程序,其中函數(shù)f的功能是將多個字符串按字典順序排序()。
#include<string.h>
voidf(char*p[],intn)
{char*t;inti,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strcmp(p[i],p[j]>0){t=p[i];p[i]=p[j];p[j]
=t;}
}
main
{char*P[5]={"abe","aabdfg","abbd","dcd-
be","cd"};
f(p,5);
printf("%d\n",strlen(p[1]));
}
程序運(yùn)行后的輸出結(jié)果是()o
A.2B.3C.6D.4
73.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.2,1,1,2B.1,2,1,2C.2,1,2,1D.1,2,2,1
74.有以下程序(函數(shù)fun只對下標(biāo)為偶數(shù)的元素進(jìn)行操作):
#include<stdio.h>
voidfun(int*n)
{inti,j,k,t;
for(i=0;i<n-1;i+=2)
{k=i;
for(j=i;j<n;j+=2)if(a[j]>a[k])k=j;
t[a[i];a[i]=a[k];a[k]=t;
}
}
main
{intaa[lO]=[1,2,3,4,5,6,7],a;
fun(aa,7);
for(i=0;i<7;i++)printf("%d,",aa[i]);
printf("n");
}
程序運(yùn)行后的輸出結(jié)果是()。
A.7,2,5,4,3,6,1,
B.1,6,3,4,5,2,7,
C.7,6,5,4,3,2,1,
D.1,7,3,5,6,2,1,
75.
76.有以下程序:main{union{charch[2];intd;}s;d=0x4321;printf("%x,%x\n",S.ch[0],S.ch[l]);}在16位編譯系統(tǒng)上,程序執(zhí)行后的輸出結(jié)果是()A.21,43B.43,21C.43,00D.21,00
77.
78.若有定義語句:“intkl一10,k2=20;”,執(zhí)行表達(dá)式(kl=kl>k2)(k2=k2>
k1)后,kl和k2的值分別為()。
A.0和1B.0和20C.10和1D.10和20
79.
80.
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:首先把b所指字符串中的字符按逆序存放,然后將str1所指字符串中的字符和Str2所指字符串中的字符,按排列的順序交叉合并到str所指數(shù)組中,過長的剩余字符接在str所指數(shù)組的尾部。例如,當(dāng)str1所指字符串中的內(nèi)容為ABCDEFG,str2所指字符串中的內(nèi)容為1234時,str所指數(shù)組中的內(nèi)容應(yīng)該為A483C2D1EFG;而當(dāng)str1所指字符串中的內(nèi)容為1234,str2所指字符串中的內(nèi)容為ABCEDFG時,str所指數(shù)組中的內(nèi)容應(yīng)該為1G2F31:4DCBA。
請修改程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio。h>
#include<string.h>
voidproc(char*strl,char*str2,char*str){
inti,j;charch;
i=0;j=strleu(str2)-1;
//****found****
while(i>j)
{
ch=str2[i];str2[i]=str2[j];str2[j]=ch;
i++;j--;
}
while(*str1||*str2)
{
if(*str1){*str=*str1;str++;str1++;)
if(*str2){*str=*str2;str++;str2++;)
}
//****found****
*str=0:
}
voidmain
{
chars1[100],s2[100],t[200];
system("CLS");
printf("\nEnters1string:");
scanf("%s",sl);
printf("\nEnters2string:");
scanf("%s",s2);
proc(s1,s2,t);
printf("\nTheresultis:%s\n",t);
}
六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是將s所指字符串中除了下標(biāo)為奇數(shù)同時ASCII值也為奇數(shù)的字符之外的其余所有字符全部刪除,字符串中剩余字符所形成的一個新字符串存放在t所指的數(shù)組中。例如,若s所指字符串的內(nèi)容為“ABCDEFG12345”,其中字符A的ASCII值為奇數(shù),但所在元素的下標(biāo)為偶數(shù),因此需要刪除;而字符1的ASCII值為奇數(shù),所在數(shù)組中的下標(biāo)也為奇數(shù),因此不應(yīng)當(dāng)刪除,其他依此類推。最后t所指數(shù)組中的內(nèi)容應(yīng)為“135”。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*s,chart[]){}main(){ chars[100],t[100]; printf(“\nPleaseenterstrings:”); scanf(“%s”,s); fun(s,t); printf(“\nTheresultis:%s\n”,t);}
參考答案
1.B解析:在主函數(shù)中,第—次調(diào)用fun函數(shù),將變量b,c的值傳給形參x,y,在fun()函數(shù)中執(zhí)行if語句,判斷b和c的值是否相等,由于在主函數(shù)中賦初值b=5,c=6,所以判斷條件不滿足,執(zhí)行else語句,返回表達(dá)式(x+y)/2的值,即:(5+6)/2,因?yàn)閰?shù)的類型都為int型,所以結(jié)果也為整型:5,第二次調(diào)用時8和5也不相等,所以返回值為6,因此,選項(xiàng)B是正確的。
2.C
3.B本題考多循環(huán)的使用,當(dāng)j=10,i=9時,循環(huán)成立,第一個if條件為假,第二個if條件i==j-1成立,則輸出j的值為10,接者執(zhí)行i++后,i為10;當(dāng)i為10,for循環(huán)不成立,退出內(nèi)層循環(huán),此時執(zhí)行j++后,j為11,循環(huán)不成立,退出循環(huán)。
4.Cmain函數(shù)定義兩個double類型的變量a、b,分別賦初值為2.5、9.0。另外定義兩個double類型的指針變量pa、pb,其中pa指向a,pb指向b。然后將b-a、pa、pb傳給函數(shù)fun,此時x的值為6.5,y指向a,z指向b?!?y=*y-1.0;”是將變量a的值減去1.0賦給a,a的值為1.5;“*z=*z+x;”是將變量b的值加上6.5賦給b,b的值為15.5。fun函數(shù)執(zhí)行完畢后,輸出a的值為1.5。故本題答案為C選項(xiàng)。
5.D
6.D
7.B根據(jù)ASCII碼可知大寫字符A與小寫字符a的ASCIl碼相差32,而D中應(yīng)該是加上'a',選項(xiàng)A和C左側(cè)的表達(dá)式都是大寫字符C與大寫字符A的差與'a'的ASCIl代碼的和就是小寫字符c的ASCII代碼。
8.A
9.C解析:C語句必須以分號結(jié)束,選項(xiàng)A是正確的。復(fù)合語句在語法上被看作一條語句,選項(xiàng)B也是正確的??照Z句也算是一條語句,因此如果空語句出現(xiàn)在條件或者循環(huán)語句中,一樣會被當(dāng)作條件子句或者循環(huán)體來看待,所以選項(xiàng)c是錯誤的。賦值表達(dá)式末尾加分號就構(gòu)成賦值語句,選項(xiàng)D正確。故本題應(yīng)該選擇C。
10.B解析:軟件生命周期由軟件定義、軟件開發(fā)和軟件維護(hù)三個階段組成。軟件定義可分為軟件系統(tǒng)的可行性研究和需求分析兩個階段。軟件開發(fā)階段由5個階段組成:概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編寫代碼、組裝測試和確認(rèn)測試。軟件維護(hù)時期的主要任務(wù)是使軟件持久地滿足用戶的需要。選項(xiàng)B正確。
11.C
12.A解析:全局變量說明為static存儲類,其生命周期將得到延長,但作用域不能被擴(kuò)大;static存儲類變量在未賦初值時,是有默認(rèn)值的,形參中的存儲類說明符與局部變量完全相同。
13.D
\n首先定義了一個指向一維數(shù)組b的指針P,一個指向指針P的指針變量q;輸出*(p++)是先輸出*p,即b[O]的值,再將指針P指向數(shù)組的下一個元素b[1];輸出**q是輸出指針P所指單元的內(nèi)容。
\n
14.A
15.C
16.B
17.CC選項(xiàng)中不能含有逗號,所以“1,234”不能用作C語言程序的合法常量。B選項(xiàng)表示的是八進(jìn)制的常量,D選項(xiàng)表示的是十六進(jìn)制的常量。故本題答案為C選項(xiàng)。
18.C條件運(yùn)算符(?:)是C語言中唯一的一個三目運(yùn)算符,它是對第一個表達(dá)式做真/假檢測,然后根據(jù)結(jié)果返回兩個表達(dá)式中的一個作為運(yùn)算的結(jié)果。<表達(dá)式1>?<表達(dá)式2>:<表達(dá)式3>。在運(yùn)算中,首先對第一個表達(dá)式進(jìn)行檢驗(yàn),如果為真,則返回表達(dá)式2的值;如果為假,則返回表達(dá)式3的值。
19.D解析:本題考核的知識點(diǎn)是指針變量定義和賦值語句的基本應(yīng)用。在使用一個指針變量之前,先要用聲明語句對其進(jìn)行定義,在定義了一個指針變量之后,系統(tǒng)就為這個指針變量分配了一個存儲單元,用它來存放地址。在C語言中有兩個有關(guān)指針的運(yùn)算符:&運(yùn)算符,為取地址運(yùn)算符,*運(yùn)算符是指針運(yùn)算符,*p代表p所指向的變量。本題中首先定義了整型變量n,其初值為0,接著定義一個指針變量p并讓它指向n,然后定義了一個指向指針的指針變量q并讓它指向p,選項(xiàng)A中將常量1賦給指針p不正確;選項(xiàng)B也是將常量2賦給*p,故選項(xiàng)B不正確;選項(xiàng)C中P不是指向指針的指針變量,而將他賦值給一個指向指針的指針變量小顯然不正確,所以,4個選項(xiàng)中選項(xiàng)D符合題意。
20.A解析:本題定義了一個指向由3個元素組成的一維數(shù)組的指針變量pa,通過賦值讓它指向具有2行3列的數(shù)組a,此時用指針變量pa,表示數(shù)組元素a[i][j]的形式是pa[i][j]。for循環(huán)執(zhí)行了3次;第一次i值為0,執(zhí)行pa[1][0]=pa[1][0]-1,執(zhí)行后a[1][0]的值變?yōu)?;第二次i值為1,執(zhí)行pa[1][1]=pa[1)[1]-1,執(zhí)行后a[1][1]的值為4;第三次i值為2,執(zhí)行pa[1][2]=1,執(zhí)行后a[1][2]的值變?yōu)?。故printf語句輸入的值為2+4+1=7。所以,A選項(xiàng)為所選。
21.19
22.350350解析:在任意一棵二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個。在根據(jù)完全二叉樹的定義,在一棵完全二叉樹中,最多有1個度為1的結(jié)點(diǎn)。因此,設(shè)一棵完全二叉樹具有n個結(jié)點(diǎn),若n為偶數(shù),則在該二叉樹中有n/2個葉子結(jié)點(diǎn)以及n/2-1個度為2的結(jié)點(diǎn),還有1個是度為1的結(jié)點(diǎn):若n為奇數(shù),則在該二叉樹中有[n/2]+1個葉子結(jié)點(diǎn)以及[n/2]個度為2的結(jié)點(diǎn),沒有度為1的結(jié)點(diǎn)。本題中,完全二叉樹共有700個結(jié)點(diǎn),700是偶數(shù),所以,在該二叉樹中有350個葉子結(jié)點(diǎn)以及349個度為2的結(jié)點(diǎn),還有1個是度為1的結(jié)點(diǎn)。所以,本題的正確答案為350。
23.參照完整性參照完整性
24.邏輯關(guān)系邏輯關(guān)系
25.acrk=0p[i][j]k++k
26.1030010300解析:在scanf格式控制符中有一個“*”附加說明符,表示跳過它指定的列數(shù)。程序中'%d%*d%d'表示首先將10賦給i,然后遇%。d讀入整數(shù)但不賦給任何變量,最后將讀人的整數(shù)30賦給變量j,變量k并沒有重新賦值,仍為初始值0。所以輸出的結(jié)果為10300。
27.n/=10或n=n/10n/=10或n=n/10解析:每次循環(huán)把n除以10所得的商賦給n。
28.20020,0解析:在主函數(shù)中首先定義了三個整型變量x、y、t,并分別給它們賦初值為10,20,0,接著執(zhí)行if語句,在if后面括號內(nèi)的條件表達(dá)式中,條件“x==y”即“10==20”不成立,則不執(zhí)行其后的語句“t=x”,然后退出if語句,順序執(zhí)行語句x=Y;Y=t;。執(zhí)行完這兩條語句后x的值變?yōu)?0,y的值變?yōu)?,所以最后輸出x,y的值為20和0。
29.6
30.算法或程序或流程圖算法或程序或流程圖解析:算法是問題處理方案正確而完整的描述。
31.33解析:這里:b-5=4,a-=4之后a的值為6,并把它賦給c。此時b的值并未被改變。在第2個表達(dá)式中,也只有賦值表達(dá)式b=3改變了b的值。所以兩行語句執(zhí)行完畢,b的值應(yīng)該為3。
32.p!=NULLp->nextp!=NULL,p->next解析:考查了單鏈表的相關(guān)知識。NULL的ASCII碼的值和'\\0'的ASCII碼的值相等,條件到NULL停止循環(huán)。把下一個節(jié)點(diǎn)的地址賦給p,這樣循環(huán),節(jié)點(diǎn)可以依次向后取值。
33.1-21,-2解析:題中外層while循環(huán)的循環(huán)條件是y--!=-1,即y>=0;內(nèi)層do…while循環(huán)的循環(huán)條件是y--即y-->0,y>=1。注意:break和continue語句在循體中的作用。
34.503503解析:本題考查的是C語言中if語句的語句體。第一個if語句的語句體為t=a,第二個if語句的語句體為t=a。執(zhí)行第一個if語句時,條件a<b不成立,所以不執(zhí)行t=a,直接執(zhí)行語句a=b和b=t得a=3、b=0,然后判斷第二個if語句的條件a<c是否成立,即判斷3<5是否成立,顯然條件成立,執(zhí)行語句t=a得t=3,接著執(zhí)行a=c;c=t得a=5、c=3,所以a=5、c=3、b=0。
35.7
36.0i<=100;sum
37.m=4k=4i=5k=5m=4k=4i=5k=5解析:在主函數(shù)main()中定義了一個變量i,并賦初值4,調(diào)用fun()函數(shù)將i的初值傳遞給形參m,進(jìn)行fun()函數(shù)后的運(yùn)算,輸出結(jié)果為m=4,k=4。將k值輸出后自行增加1,k=5,此時全局變量k的值變?yōu)?。主函數(shù)中調(diào)用fun()函數(shù)后,i再自行增加1,i=5,所以主函數(shù)輸出的結(jié)果為“i=5k=5”。
38.關(guān)系或一個關(guān)系關(guān)系或一個關(guān)系解析:在關(guān)系數(shù)據(jù)庫中,把數(shù)據(jù)表示成二維表,而一個二維表就是一個關(guān)系。
39.
40.8181解析:將S(i+j)展開來有:S(i+j)=S(6+8)=4×6+8×6+8+1=81。
41.A解析:C語言的常量分為整型常量、實(shí)型常量和字符型常量。本題中包含整型常量和實(shí)型常量。選項(xiàng)B)以0打頭,應(yīng)該屬于八進(jìn)制整數(shù),而八進(jìn)制整數(shù)只能用數(shù)字0~7表示,所以選項(xiàng)B)不合法;選項(xiàng)C)和D)從形式上看屬于實(shí)型常量,但對于指數(shù)形式的實(shí)型常量,e(或E)之前必須有數(shù)字,且e后面的指數(shù)必須為整數(shù),所以選項(xiàng)C)和D)都不合法;選項(xiàng)A)屬于實(shí)型常量中正確的十進(jìn)制小數(shù)形式。
42.A答案A
解析:一個C程序可以有一個或多個程序文件,也可以有一個或多個函數(shù),所以一個C語言程序可以實(shí)現(xiàn)多種算法。
43.B解析:信息隱蔽是指在一個模塊內(nèi)包含的信息(過程或數(shù)據(jù)),對于不需要這些信息的其他模塊來說是不能訪問的。模塊獨(dú)立性是指每個模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。衡量軟件的模塊獨(dú)立性的度量標(biāo)準(zhǔn)是耦合性和內(nèi)聚性。一個模塊的耦合性越強(qiáng),則該模塊的模塊獨(dú)立性越強(qiáng)。
44.C解析:本題考核的知識點(diǎn)是字符數(shù)組的定義、賦初值以及函數(shù)sizeof()的應(yīng)用。本題中定義兩個字符型數(shù)組,其中a省略了長度,定義了b的長度為10,并賦初值分別為“abcdefg”和“abcdfg”。所以a的長度為賦值給它的字符串的字符個數(shù)7加上一個結(jié)束轉(zhuǎn)義字符,即a的長度為7+1為8.定義時b的長度定義為10,故b的長度為10,因此最后通過函數(shù)sizeof()求得的數(shù)組a和數(shù)組b的長度分別為8和10,所以,4個選項(xiàng)中選項(xiàng)C符合題意。
45.C解析:本題考查了字符的輸入函數(shù)getchar和利用scanf函數(shù)輸入一個字符。用scanf輸入字符時,格式說明字符應(yīng)該為%c。本題選項(xiàng)C)因?yàn)橹羔榩沒有賦初值,所以是一個不定值,不能直接將getchar讀入的字符賦給指針p所指向的字符,所以選項(xiàng)C錯誤。
46.C解析:軟件工程的基本概念。軟件工程概念的出現(xiàn)源自于軟件危機(jī)。為了消除軟件危機(jī),通過認(rèn)真研究解決軟件危機(jī)的方法,認(rèn)識到軟件工程是使計(jì)算機(jī)軟件走向工程科學(xué)的途徑,逐步形成了軟件工程的概念。
47.C解析:二維數(shù)組的初始化及庫函數(shù)strlen()的應(yīng)用,主函數(shù)中定義了一個二維字符數(shù)組并初始化,初始化后的結(jié)果為str[0]=“Hello”、str[1]=“Beijing”,然后定義一個字符指針變量p并讓它指向數(shù)組的首地址,即指向str[0],而在C語言中無論是一維還是多維數(shù)組,其元素在內(nèi)存中都是順序存放的,故p+20后指針指向str[1],所以strlen(p+20);返回的是str[1]中的字符串的長度,即Beijing的長度為7,所以最后輸出的值為7。
48.C解析:帶參數(shù)的宏定義命令行形式如下:
#define宏名(形參表)替換文本
在編譯的時候編譯預(yù)處理程序用“替換文本”來替換宏,即M(n,m)被替換為n%m,之后計(jì)算,將計(jì)算的結(jié)果賦給a。注意,宏替換是在編譯時由預(yù)處理程序完成的,宏替換不占用運(yùn)行的時間,而函數(shù)調(diào)用是在程序運(yùn)行時進(jìn)行的,在函數(shù)的調(diào)用過程中需要占用一系列的處理時間。
49.C
50.A
51.C解析:本題涉及C語言的3個基本知識點(diǎn):①C語言的源程序是由函數(shù)構(gòu)成的,函數(shù)是其基本單位,每一個函數(shù)完成相對獨(dú)立的功能,其中只能包括一個主函數(shù);②C語言規(guī)定每個語句以分號結(jié)束,其書寫格式是自由的,一條語句可以寫在不同的行上,或者一行也可以寫多條語句;⑧注釋行雖然對程序的運(yùn)行不起作用,但是它可以方便程序員閱讀,提高程序的可讀性和可移植性,所以書寫注釋行還是很有必要的。
52.C解析:本題考核的知識點(diǎn)是局部變量和全局變量的區(qū)別。若在函數(shù)中定義與全局變量名字相同局部變量,則全局變量在該函數(shù)中將不起作用。本題中定義了一個全局變量a和局部變量a在主函數(shù)中定義一個整型變量s并賦初值為0,接著定義了一個局部變量a并賦值為5,由于該局部變量的和全局變量a同名,故全局變量在復(fù)合語句中將不起作用,然后調(diào)用函數(shù)f(&a)(該函數(shù)的作用是返回存儲變量a的空間中的值,并讓該值加1,分析程序可知返回值為5,并讓a值加1變?yōu)?),并將返回值加到s中.此時s的值為5,然后執(zhí)行該復(fù)合語句外的其他語句,同樣調(diào)用函數(shù)f(&a),但傳遞的參數(shù)是全局變量a,故其返回值為2,加到。中后s的值變?yōu)?,故最后輸出的s的值為7,所以,4個選項(xiàng)中選項(xiàng)C符合題意。
53.C解析:關(guān)于軟件測試的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一書中給出了深刻的闡述:軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程;一個好的測試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯誤的用例;一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。整體來說,軟件測試的目的就是盡可能多地發(fā)現(xiàn)程序中的錯誤。本題答案為C。
54.B解析:++、--運(yùn)算符在變量之前是先使變量的值加1或減1,然后再使用變量的值;如果在變量之后則先使用變量之前的值,再把變量的值加1或減1。顯然,程序中表達(dá)式i--的值為10,++j的值為2,所以最后輸出的值為10和2,故B選項(xiàng)為所選。
55.A解析:選擇排序的基本思想是掃描整個線性表,從中選出最小的元素,將它交換到表的最前面,然后對剩下的子表采用同樣的方法,直到子表為空。所以第一趟排序后,將選出最小的元素9放在第一個位置,元素15則放在第二個位置。
56.C解析:該題稍微難一點(diǎn)。主要要搞清楚以下幾點(diǎn):①定義了一個指針數(shù)組char.p[2]后,程序中第一個循環(huán)for(i=0;i<2;i++)p[i]=ch[i];的作用,是使指針數(shù)組的p[0]元素(它本身是一個指針)指向了二維數(shù)組ch的第一行字符串,并使指針數(shù)組的p11)元素指向了二維數(shù)組ch的第二行字符串,這樣,就使指針數(shù)組p和二維數(shù)組ch建立起了一種對應(yīng)關(guān)系,以后對二維數(shù)組ch的某個元素的引用就有兩種等價的形式:ch[i][j]或p[i][j]。②對二維數(shù)組ch的初始化,使其第一行ch[0]中存入了字符串'6937',第二行ch[1]中的內(nèi)容為字符串'8254'。③程序中第二個循環(huán)中的循環(huán)體s=e*10+p[i][j]-‘0’;的功能是這樣的,每執(zhí)行一次,將s中的值乘以10(也即,將s中的數(shù)值整體向左移動一位,并在空出來的個位上添一個0),再將當(dāng)前p[i][j]中的字符量轉(zhuǎn)換為相應(yīng)的數(shù)字,然后把這個數(shù)字加到s的個位上。④注意到內(nèi)層循環(huán)的循環(huán)條件p[i][j]>,0,是指p[i][j]中的字符只要不是字符串結(jié)束標(biāo)志,\\0,就繼續(xù)循環(huán),語句j+=2;是使下標(biāo)j每次增加2,也即一個隔一個地從p[i]所指向的字符串中取出字符。經(jīng)過上述解析后,不難看出,該程序首先從p[0]所指向的字符串'6937'中一個隔一個地取出字符,分別是‘6’和‘3’,然后從p[1]所
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版數(shù)學(xué)八年級下冊16.2《二次根式的乘除》聽評課記錄4
- 岳麓版歷史八年級下冊第16課《“一國兩制”與香港、澳門回歸祖國》聽課評課記錄
- 蘇教版三年級第五冊整百數(shù)乘一位數(shù)的口算教學(xué)設(shè)計(jì)
- 小學(xué)二年級語文教學(xué)計(jì)劃范文
- 廠房物業(yè)管理服務(wù)合同范本
- 五年級上冊數(shù)學(xué)聽評課記錄《第5單元:第3課時 用字母表示稍復(fù)雜的數(shù)量關(guān)系》人教新課標(biāo)
- 2025年度互聯(lián)網(wǎng)金融服務(wù)連帶責(zé)任保證擔(dān)保協(xié)議范文
- 2025年度蔬菜種植基地病蟲害防治合作協(xié)議
- 二零二五年度XX裝修公司員工崗位責(zé)任合同協(xié)議書
- 2025年度電商團(tuán)隊(duì)數(shù)據(jù)安全合作協(xié)議
- 2023年上海青浦區(qū)區(qū)管企業(yè)統(tǒng)一招考聘用筆試題庫含答案解析
- 2023年高一物理期末考試卷(人教版)
- 2023版押品考試題庫必考點(diǎn)含答案
- 植物之歌觀后感
- 空氣能熱泵安裝示意圖
- 建筑工程施工質(zhì)量驗(yàn)收規(guī)范檢驗(yàn)批填寫全套表格示范填寫與說明
- 2020年中秋國慶假日文化旅游市場安全生產(chǎn)檢查表
- 辦公家具項(xiàng)目實(shí)施方案、供貨方案
- 七年級英語下冊閱讀理解10篇
- 節(jié)后開工收心會
- 設(shè)計(jì)質(zhì)量、進(jìn)度保證措施
評論
0/150
提交評論