




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
2021-2022年湖北省襄樊市全國計算機等級考試C語言程序設計測試卷一(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.有以下程序: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);}}輸出結果是()。A.11B.10C.9D.1011
2.允許對隊列進行的操作有()。
A.對隊列中的元素排序B.取出最近進隊的元素C.在隊頭元素之前插入元素D.刪除隊頭元素
3.程序運行后的輸出結果是()。A.3B.4C.1D.9
4.下列選項中,能夠滿足“只要字符串s1等于字符串S2,則執(zhí)行ST”要求的是()。
A.if(s1-s2==0)ST;
B.if(s1==s2)ST;
C.if(strcpy(s1,s2)==1)ST;
D.if(strcmp(s2,s1)==0)ST;
5.已知二叉樹后序遍歷序列是dabeC,中序遍歷序列是debaC,它的前序遍歷序列是()。
A.aChedB.deCabC.deabeD.Cedba
6.下面程序輸出的是()。main{intt=l;fun(fun(t));}fun(inth){staticinta[3]={1.2.3};intk;for(k=0;k<3;k++)a[k]+=a[k]-h;for(k=0;k<3;k++)printf("%d",a[k]);printf("\n");return(a[h]);}A.1,2,3,1,5,9,B.1,3,5,1,3,7,C.1,3,5,0,4,8,D.1,3,5,-1,3,7,
7.下面關于線性表的敘述中,錯誤的是哪一個()。
A.線性表采用順序存儲,必須占用一片連續(xù)的存儲單元
B.線性表采用順序存儲,便于進行插入和刪除操作
C.線性表采用鏈式存儲,不必占用一片連續(xù)的存儲單元
D.線性表采用鏈式存儲,便于進行插入和刪除操作
8.設一個鏈表最常用的操作是在末尾插入結點和刪除尾結點,則選用()最節(jié)省時間。
A.單鏈表B.單循環(huán)鏈表C.帶尾指針的單循環(huán)鏈表D.帶頭結點的雙循環(huán)鏈表
9.下述程序的輸出結果是()。#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
10.已有定義int(*q)(),指針q可以()。
A.指向函數(shù)的入口地址B.代表函數(shù)的返回值C.表示函數(shù)的類型D.表示函數(shù)返回值的類型
11.運行下列程序時,若輸入的數(shù)據(jù)為“1,2,3”,則輸出結果是()。main{floata,b,c,t;scanf("%f,%f,%f",&a,&b,&c);if(a<b){t=a;a=b.b=t;)if(a<c){t=a;a=c;c=t;)it(b<c){t=b;b=C;c—=;)printf("%f\n%f\n%f\n",a,b,c);}A.1.002.003.00B.1.003.002.00C.132D.3.000002.000001.00000
12.以下能正確定義一維數(shù)組的選項是
A.inta[5]={0,1,2,3,4,5}
B.chara[]={'0','1','2','3','4','5','\0'};
C.chara={'A','B','C'};
D.inta[5]="0123";
13.有以下程序:#includemain(){inty=9;for(;y>0;y--)If?y%3==0)printf("%d",---y);}程序的運行結果是()。A.852B.963C.741D.875421
14.下列對隊列的敘述正確的是A.隊列屬于非線性表B.隊列按“先進后出”原則組織數(shù)據(jù)C.隊列在隊尾刪除數(shù)據(jù)D.隊列按“先進先出”原則組織數(shù)據(jù)
15.下面哪個序列不是此圖的一個拓撲排序()A.ebfgadchB.aebdgfchC.adchebfgD.Aedbfgch
16.下述程序執(zhí)行的輸出結果是()。#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.&
17.若已定義inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,則對a數(shù)組元素不正確的引用是
A.a[p-A)B.*(&a[i])C.p[i]D.a[10]
18.
19.
20.一個遞歸算法必須包括()。
A.遞歸部分B.終止條件和遞歸部分C.迭代部分D.終止條件和迭代部分
二、2.填空題(20題)21.以下程序的輸出結果是【】。
fun(intx,inty,intz)
{z=x*x+y*y;}
main()
{inta=31;
fun(6,3,a)
printf("%d,a)
}
22.下列程序段的輸出結果是【】。
main()
{charb[]="Hello,you";
b[5]=0;
printf("%s\n",B);
}
23.通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為【】。
24.若有以下程序
main()
{inta[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-21,32,-33,0}};
inti,j,s=0;
for(i=0;i<4;i++)
{for(j=0;j<4;j++)
{if(a[i][j]<0)continue;
if(a[i][j]==0)break;
s+=a[i][j];
}
}
printf("%d\n",s);
}
執(zhí)行后輸出結果是【】。
25.在C語言中,while和do…while循環(huán)的主要區(qū)別是______的循環(huán)至少被執(zhí)行一次。
26.閱讀下面程序,則執(zhí)行后的輸出結果是【】。
#include"stdio.h"
main()
{intx,y,z;
x=1;y=2;z=3;
if(x>y)if(x>z)printf("%d",x);
elseprintf("%d",y);
printf("%d\n",z);}
27.下面的程序可列指定字符串中的字符串進行從大到小排序,請將程序填完整。(注:程序采用了冒泡排序算法)
#include<stdio.h>
#include<string.h>
main()
{char*str="ABCDabcd",temp;
intn,i;
n=strlen(str);
while(n->1)
for(i=0;i<n;i++
if(str[i]<str[i+1])
{temp=【】;
str[i]=str[i+1];
【】=temp;
}
printf(【】);
}
28.以下函數(shù)inverse的功能是使一個字符串按逆序存放,請?zhí)羁铡?/p>
inverse(charstr[])
{charm;
inti,j;
for(i=0,j=strlen(str);i<strlen(str)/2;【】,j--)
{m=str[i];
str[i]=【】;
【】;
}
}
29.以下程序的輸出結果是【】。
#include<stdio.h>
main()
{inta=0;
a+=(a=8);
printf("%d\n",a);
}
30.數(shù)據(jù)流圖的類型有【】和事務型。
31.下面程序的輸出是【】。
main()
{inta[]={2,4,6},*ptr=&a[0],x=8,y,z;
for(y=0;y<3;y++)z=(*(ptr+y)<x)?*(prt+y):x;
printf("%d\n",z);
}
32.有以下程序:
main()
{intn=0,m=1,x=2;
if(!n)x-=1;
if(m)x-=2;
if(x)x-=3;
printf("%d\n",x);
}
執(zhí)行后輸出的結果是【】。
33.設有以下定義和語句,則*(*(p+2)+1)的值為【】。
inta[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
34.以下程序段的輸出結果是______。
inci=9;
printf("%o\n",i);
35.以下程序運行后的輸出結果是()。
main()
{intm=011,n=11;
printf("%d%d\ff",++m,n++);
}
36.當運行以下程序時,從鍵盤輸入abcdabcdef<CR>
cde<CR>
(<CR>表示回車),則下面程序的運行結果是【】。
#include<stdio.h>
main()
{inta;chars[80],t[80];
gets(s);gets(t);
a=fun(s,t);
printf("a=%d\n",a);}
fun(char*p,char*q)
{inti;
char*p1=p;
char*q1;
for(i=0;*p!='\0';p++,i++)
{p=p1+i;
if(*p!=*q)continue;
for(q1=q+1,p=p+1;*p!='\0'&&*q1!='\0';q1++,p++)
if(*p!=*q1)break;
if(*q1=='\0')returni;}
return(-1);}
37.以下程序運行后的輸出結果是【】。
voidswap(intx,inty)
{intt;
t=x;x=Y;Y=t;printf("%d%d",x,y);
}
main()
{inta=3,b=4;
swap(a,b);printf("%d%d",a,b);
}
38.設Y是int型變量,請寫出判斷Y為奇數(shù)的關系表達式【】。
39.下列程序的輸出結果是______。
#include<stdio.h>
main()
{inta=2,b=-1,c=2;
if(a<b)
if(b<0)c=0;
elsec++;
printf("%d\n",c);
}
40.以下程序的輸出結果是【】。
main()
{
intp[7]={11,13,14,15,16,17,18};
inti=0,j=0;
while(i<7&&p[i]%2==1)j+=p[i++];
printf("%d\n",j);
}
三、1.選擇題(20題)41.下列敘述中,錯誤的是()。
A.在同一C程序文件中,不同函數(shù)中可以使用名字相同的變量
B.在main()函數(shù)體內(nèi)定義的變量是全局變量
C.形參是局部變量,函數(shù)調(diào)用完成即失去意義
D.若同一文件中全局和局部變量同名,則全局變量在局部變量作用范圍內(nèi)不起作用
42.下列說法不正確的是()。
A.調(diào)用函數(shù)時,實參可以是表達式
B.調(diào)用函數(shù)時,實參與形參可以共用內(nèi)存單元
C.調(diào)用函數(shù)時,將實參的值復制給形參,使實參變量和形參變量在數(shù)值上相等
D.調(diào)用函數(shù)時,實參與形參的類型必須一致
43.下列程序的輸出結果是______。main(){char*s="12134211";intv[4]={0,0,0,0},k,i;for(k=0;s[k];k++){switch(s[k]){case'1':i=0;case'2':i=1;case'3':i=2;case'4':i=3;}vii]++;}for(k=O;k<4;k++)printf("%d",v[k]);}
A.4211B.0008C.4678D.8888
44.已有定義int(*p)(),指針p可以
A.代表函數(shù)的返回值B.指向函數(shù)的入口地址C.表示函數(shù)的類型D.表示函數(shù)返回值的類型
45.已知學生記錄描述為:structstudent{intno;charname[20],sex;struct{intyear,month,day;}birth;};structstudents;設變量s中的“生日”是“1984年11月12日”,對“birth”正確賦值的程序段是()。
A.year=1984;month=11;day=12;
B.s.year=1984;s.month=11;s.day=12;
C.birth.year=1984;birth.month=11;birth.day=12;
D.s.birth.year=1984;s.birth.month=11;s.birth.day=12;
46.已定義以下函數(shù)
fun(int*p)
{return*p;}
該函數(shù)的返回值是()
A.不確定的值
B.形參p中存放的值
C.形參p所指存儲單元中的值
D.形參p的地址值
47.在下列字符序列中,合法的標識符是()
A.P12&.aB.stud_100C.$water.12D.88sum
48.下列程序的輸出結果是______。main(){intw=5;fun(w);printf("\n");}fun(intk){if(k>0)fun(k-1);printf("%d",k);}
A.54321B.012345C.12345D.543210
49.當說明一個結構體變量時系統(tǒng)分配給它的內(nèi)存是()。
A.各成員所需要內(nèi)存量的總和
B.結構中第一個成員所需的內(nèi)存量
C.成員中占內(nèi)存最大者所需的容量
D.結構中最后一個成員所需要的內(nèi)存量
50.下列程序的輸出結果是()。intf1(intx,inty){returnx>y?x:y;}intf2(intx,inty){returnx>y?y:x;}main(){inta=4,b=3,c=5,d=2,e,f,g;e=f2(f1(a,b),f1(c,d));f=f1(f2(a,b),f2(c,d));g=a+b+c+d-e-fprintf("%d,%d,%d\n",e,f,g);}
A.while循環(huán)執(zhí)行10次B.循環(huán)是無限循環(huán)C.循環(huán)體語句一次也不執(zhí)行D.循環(huán)體語句執(zhí)行一次
51.以下敘述中錯誤的是()。
A.C語句必須以分號結束
B.復合語句在語法上被看作一條語句
C.空語句出現(xiàn)在任何位置都不會影響程序運行
D.賦值表達式末尾加分號就構成賦值語句
52.下面程序的輸出結果是()。#include<stdio.h>intm=13;intfun2(intx,inty){intm=3;return(x*y-m);}main(){inta=7,b=5;printf("%d\n",fun2(a,b)/m);}
A.1B.2C.7D.10
53.數(shù)據(jù)的存儲結構是指()。
A.存儲在外存中的數(shù)據(jù)B.數(shù)據(jù)所占的存儲空間量C.數(shù)據(jù)在計算機中的順序存儲方式D.數(shù)據(jù)的邏輯結構在計算機中的表示
54.下列敘述中正確的是()。A.一個邏輯數(shù)據(jù)結構只能有一種存儲結構
B.邏輯結構屬于線性結構,存儲結構屬于非線性結構
C.一個邏輯數(shù)據(jù)結構可以有多種存儲結構,且各種存儲結構不影響數(shù)據(jù)處理的效率
D.一個邏輯數(shù)據(jù)結構可以有多種存儲結構,且各種存儲結構影響數(shù)據(jù)處理的效率
55.以下敘述中正確的是()。
A.用C語言實現(xiàn)的算法必須要有輸入和輸出操作
B.用C語言實現(xiàn)的算法可以沒有輸出但必須要有輸入
C.用C程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出
D.用C程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出
56.在順序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找關鍵碼值11,所需的關鍵碼比較次數(shù)為______。
A.2B.3C.4D.5
57.算法中的每一個步驟都必須是有明確意義的,不允許有模棱兩可的解釋,也不允許有多義性。算法的這個性質(zhì)稱為______。
A.可行性B.有窮性C.正確性D.確定性
58.已有定義int(*q)(),指針q可以()。
A.指向函數(shù)的入口地址B.代表函數(shù)的返回值C.表示函數(shù)的類型D.表示函數(shù)返回值的類型
59.數(shù)據(jù)的存儲結構是指______。
A.數(shù)據(jù)所占的存儲空間量B.數(shù)據(jù)的邏輯結構在計算機中的表示C.數(shù)據(jù)在計算機中的順序存儲方式D.存儲在外存中的數(shù)據(jù)
60.設有如下三個關系表:
下列操作中正確的是()。
A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S
四、選擇題(20題)61.有以下定義:
62.
A.P=8;B.P=k;C.P=s[0];D.k=s;
63.
64.
65.軟件設計包括軟件的結構、數(shù)據(jù)接口和過程設計,其中軟件的過程設計是指()
A.模塊間的關系B.系統(tǒng)結構部件轉(zhuǎn)換成軟件的過程描述C.軟件層次結構D.軟件開發(fā)過程
66.以下能正確定義一維數(shù)組的選項是A.intnum[];
B.#defineN100intnum[N];
C.intnum[0..100];
D.intN=100;intnum[N];
67.設有定義:
doublea[10],*s=a;
以下能夠代表數(shù)組元素a[3]的是()。
A.($s)[3]B.}(s+3)C.*s[3]D.}s+3
68.有以下程序
69.下列關于結構化設計原則的描述,錯誤的是
A.在塊和進程的非正常出口處往往需要調(diào)用GOTO語句,使用GOTO語句使程序執(zhí)行效率提高,但是濫用GOTO語句確實有害,應該避免使用GOTO語句
B.程序設計時應該自頂向下,逐步求精
C.程序設計時,應該將復雜問題進行模塊化,就是將程序設計的總目標分解為若干個分目標,再進一步分解為具體的小目標
D.在進行程序設計時,應該盡量在一行寫一條語句,盡量做到效率第一,清晰第二
70.
71.
下列程序執(zhí)行后的輸出結果是()。
main
{inta[3][3],*p,i};
p=&a[0][0];
for(i=p;i<9;i++)p[i]=i+1;
printf("%d\n",a[1][2]);
}
A.3B.6C.9D.隨機數(shù)
72.軟件生命周期中花費時間最多的階段是
A.詳細設計B.軟件維護C.軟件編碼D.軟件測試
73.
74.
下面for語句的循環(huán)次數(shù)為()。
for(x=1,y=0;(y!=19)&&(x<6);x++);
A.是無限循環(huán)B.循環(huán)次數(shù)小定C.最多執(zhí)行6次D.最多執(zhí)行5次
75.若有定義語句:"inta[4][10],*P,*q[4];"且0≤i<4,則錯誤的賦值是()。
A.D=aB.q[i]=a[i]C.p=a[l]D.P=&a[2][1]
76.CSS指的是下列()的縮寫。
A.ComputerStyle.Sheets
B.CascadingStyle.Sheets
C.CreativeStyle.Sheets
D.ColorfulStyle.Sheets
77.
78.表達式3.6-5/2+1.2+5%2的值是()。A.3.8B.4.8C.3.3D.4.3
79.下列與char*pa[3][5]={"a","bb","ccc"}等價的是()。
A.char(*pa)[][5]={"a","bb","ccc"}
B.char*pa[3][]={"a","bb","ccc"}
C.charpa[3][]={"a","bb","ccc"}
D.都不等價
80.
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是計算正整數(shù)m各位上數(shù)字的平方和。例如,輸入498,則輸出應該是161。請修改程序中的錯誤,使它能得到正確結果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>longproc(10ngm){//****found****longsum=1;do{sum+=(m%10)*(m%10);m/=l0;//****found****}while(m)return(sum);}voidmain{longn;system("CLS");printf("Pleaseenteranumber:");scanf("%1d",&n);printf("\n%ld\n",proc(n));}
六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c在此程序中,編寫函數(shù)intfun(),其功能是求出小于或等于lim的所有素數(shù),將其存放在aa數(shù)組中,并返回所求出的素數(shù)的個數(shù)。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:1#include<conio.h>2#include<stdio.h>3#include<stdlib.h>4#defineMAX1005intfun(intlim,intaa[MAX])6{78}9voidmain()10{11FILE*wf;12intlimit,i,sum;13intaa[MAX];14system("CLS");15printf("輸入一個整數(shù):");16scanf("%d",&limit);17sum=fun(limit,aa);18for(i=0;i<sum;i++)19{20if(i%10==0&&i!=0)/*每行輸出10個數(shù)*/21printf("\n");22printf("%5d",aa[i]);23}24/******************/25wf=fopen("out.dat","w");26sum=fun(15,aa);27for(i=0;i<sum;i++)28{29if(i%10==0&&i!=0)/*每行輸出10個數(shù)*/30fprintf(wf,"\n");31fprintf(wf,"%5d",aa[i]);32}33fclose(wf);34/******************/35}
參考答案
1.B本題考多循環(huán)的使用,當j=10,i=9時,循環(huán)成立,第一個if條件為假,第二個if條件i==j-1成立,則輸出j的值為10,接者執(zhí)行i++后,i為10;當i為10,for循環(huán)不成立,退出內(nèi)層循環(huán),此時執(zhí)行j++后,j為11,循環(huán)不成立,退出循環(huán)。
2.D
3.B[解析]每次內(nèi)循環(huán)只循環(huán)一-次就結束,第一次外循環(huán)時t=t+b[][0][]=1+b[0][0]=1+0=1;第二次外循環(huán)時t=t+b[1][b[1][1]]=1+b[1][1]=1+1=2;第三次外循環(huán)時t=t+b[][2][]=2+b[2][2]=2+2=40
4.D在C語言中,對兩個字符串進行比較,使用字符串比較函數(shù)strcmp。如果這個函數(shù)的返回值等于0,說明兩個字符串相等。故本題答案為D選項。
5.D二叉樹的遍歷有3種:前序、中序和后序。①前序遍歷訪問根結點,然后按左右順序遍歷子結點;②中序首先遍歷左子樹,然后訪問根結點,最后遍歷右子樹;③后序遍歷首先遍歷左子樹,然后遍歷右子樹,最后訪問根結點。本題根據(jù)后序和中序遍歷的結果可以得出二叉樹的結構,然后再對其進行前序遍歷,正確答案選項為D。
6.D本題考查雙重函數(shù)調(diào)用及for循環(huán)使用,fun函數(shù)中第一個for循環(huán)語句的作用是給數(shù)組a賦值。當?shù)谝淮握{(diào)用fun函數(shù)時,把實參1傳給形參,輸出a數(shù)組的元素為1,3,5;第二次調(diào)用fun函數(shù)時,由于數(shù)組a為靜態(tài)局部變量,故輸出a數(shù)組的元素為一1,3,7。
7.B
8.C
9.D首先定義了一個指向一維數(shù)組b的指針P,一個指向指針P的指針變量q;輸出*(p++)是先輸出*p,即b[O]的值,再將指針P指向數(shù)組的下一個元素b[1];輸出**q是輸出指針P所指單元的內(nèi)容。
10.A解析:本題考查的是指向函數(shù)的指針。函數(shù)指針的定義方式是:類型標識符(*指針變量名)()。其中,“類型標識符”為函數(shù)返回值的類型;“指針”指向函數(shù)的入口地址。
11.D本題考查if語句。第1個if語句,如果a<b,則a與b交換;第2個if語句,如果a<c,則a與c交換;第3個if語句,如果b<2t,則b與c交換。3個if語句結合起來實現(xiàn)的功能就是將a、b、C按從大到小排序。
12.B解析:選項A)中,定義的初值個數(shù)大于數(shù)組的長度;選項C)中,數(shù)組名后少了中括號;選項D)中,整型數(shù)組不能賦予字符串。
13.A答疑:[解析]第一次for循環(huán),y的值為9.y%3的值為0.滿足條件打印-y,即先減一-后打印,所以打印8;第二次for循環(huán),y的值為7.y%3的值為1.不執(zhí)行打印語句;第三次for循環(huán),y的值為6.y%3的值為0.滿足條件打印--y,即先減-后打印,所以打印5;第四次for循環(huán),y的值為4.不滿足條件,不執(zhí)行打印語句;第五次for循環(huán),y的值為3.滿足條件,打印輸出2;第六次for循環(huán),y的值為1.不滿足條件,不執(zhí)行打印語句。
14.D解析:本題考查數(shù)據(jù)結構中隊列的基本知識。隊列是一種限定性的線性表,它只允許在表的一端插入元素,而在另一端刪除元素,所以隊列具有先進先出的特性。在隊列中,允許插入元素的一端叫做隊尾,允許刪除的一端則稱為隊頭。這與日常生活中的排隊是一致的,最早進入隊列的人最早離開,新來的人總是加入到隊尾。因此,本題中只有選項D的說法是正確的。
15.C
16.Astrcpy實現(xiàn)的功能是復制,該操作把are復制到a中,aE03E33一’&’,且strcpy(aEl],"you")把you復制到a[l]中,故輸出a為“are&you”。
17.D解析:通常,引用一個數(shù)組元素可以用下標法,如a[P-a]形式,或指針法,如*(&a[i])的形式。本題中a[9]=9,a[10]顯然超出了數(shù)組范圍,注意,數(shù)組的下標是從0開始的。
18.A
19.A
20.B
21.3131解析:在函數(shù)調(diào)用時,形參值和改變,不會改變實參的值。
22.HelloHello解析:字符串中,數(shù)值0或符號'/0'表示字符串的結束。本題中,b[5]被賦了0值,表明字符串b的第六個字符就是結束標志。因此,只輸出前五個字符,即Hello。
23.軟件生命周期軟件生命周期解析:軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個時期都屬于軟件生命周期。一般包括可行性研究與需求分析、設計、實現(xiàn)、測試、交付使用以及維護等活動。
24.5858解析:本題中處理二維數(shù)組元素用了兩重循環(huán),外循環(huán)變量i表示數(shù)組的行,內(nèi)層循環(huán)變量j表示數(shù)組的列。在第二重循環(huán)中首先判斷數(shù)組元素的值是否小于0,若是則處理該行的下一個元素;若不是則判斷a[i][j]的值是否等于0,若等于0則退出內(nèi)層循環(huán)開始處理下一行;其他情況下,把a[i][j]的值加到變量s中。所以本程序段的功能是把每行值為0的元素前面的所有大于0的元素值加到變量s中。
25.do…whiledo…while解析:考查while和do…while循環(huán)的主要區(qū)別。while循環(huán)的控制出現(xiàn)在循環(huán)體之前,只有當while后面的表達式的值為非零時,才可能執(zhí)行循環(huán)體;在do…while構成的循環(huán)體中,總是先執(zhí)行一次循環(huán)體,然后再求表達式的值,因此無論表達式的值是否為零,循環(huán)體至少要被執(zhí)行一次。
26.33解析:C語言的語法規(guī)定:else子句總是與前面最近的不帶else的if相結合。因為x不大于y,所以執(zhí)行printf('%d\\n',z);語句。
27.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本題要求將字符串str中的字符用冒泡排序算法從大到小排列,其實現(xiàn)過程是將相鄰兩個字符進行比較,如果當前字符小于下一個字符,則通過中間變量temp將字符兩兩交換,所以第一空應填:str[i],第二空應填:str[i+l]。最終打印輸出得到的字符串str,所以第三空應填:'%s',str。
28.i++或++istr[j-1]str[j-1]=mi++或++i\r\nstr[j-1]\r\nstr[j-1]=m解析:字符中逆序存放的算法是:將字符串中的第i個字符和第strlen(str)-i個字符交換。然后交換字符串中第i+1個字符和第(strlen(str)-i)-1個字符,故循環(huán)變量i的值應改變,且步長為1,所以[18]處應填i++;讀程序可知,循環(huán)中通過中間變量m交換字符串中的第i個字符和第strlen(str)-i個字符,所以題中第一、二處應分別填寫str[j-1]、str[j-1]=m。
29.1616解析:本題中a+=8相當于a=a+8。對表達式逐步進行求解:在a+=(a=8)中,首先a被賦值為8,語句等價于a+=8;即a=a+8;結果為a=16。
30.變換型典型的數(shù)據(jù)流類型有兩種:變換型和事務型。變換型是指信息沿輸入通路進入系統(tǒng),同時由外部形式變換成內(nèi)部形式,進入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng);在很多軟件應用中,存在某種作業(yè)數(shù)據(jù)流,它可以引發(fā)一個或多個處理,這些處理能夠完成該作業(yè)要求的功能,這種數(shù)據(jù)流就叫做事務。
31.66解析:本題變量z的值應為最后一次給它賦的值,且最后一次for循環(huán)使prt指向a[2]
32.-4-4解析:本題中,n=0,可以判斷(!n)為真,執(zhí)行x=x-1=2-1=1;m=1,可以判斷(m)為真,執(zhí)行x=x-2=1-2=-1;進而可以判斷(x)為真,執(zhí)行x=x-3=-1-3=-4。所以,最后輸出為-4
33.6060解析:程序中定義a是一個3行2列的二維數(shù)組,p是指向兩個元素的一維數(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。
34.1111解析:本題考核的知識點是printf()函數(shù)的輸出格式.本題中定義了一個整型變量i并賦初值為9,然后要求以八進制輸出i的值,因為9的八進制的表示為11,所以最后輸出的值為11。
35.10111011解析:賦值表達式m=011中的常數(shù)011為八進制,++m后以十進制數(shù)格式“%d”輸出為10。
36.a=6a=6解析:字符指針p++使指針向后移動一個字符的位置,而*p則是取得指針p所在位置的字符元素。
37.43344334解析:函數(shù)的參數(shù)傳遞形參的改變不會影響實參的值。調(diào)用函數(shù)swap(x,y)時,將x,y進行交換再輸出,輸出為43,但主函數(shù)中的a、b值并沒有改變,最后輸出a、b的值,為34。
38.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判斷變量是否為奇數(shù)可以用變量與2取模,判斷結果是為1或下為0。本題具體做法如下:Y%2=1或Y%2!=0。
39.22解析:分析程序,a=2,b=-1,c=2時,if語句的表達式a<b不成立,不再往下判斷,直接退出if語句,執(zhí)行后面的輸出語句,程序結束。在這個程序中a、b、c的值沒做任何改變。
40.2424解析:本題程序定義了一維數(shù)組p,有七個數(shù)組元素,整型變量i,j初值分別為0,當while的條件表達式(i<7&&p[i]%2==1)的值為真時,執(zhí)行語句j+=p[i++];,如:當i=0時,i<7為真,p[i]%2=11%2=1,表達式(p[i]%2==1)的值為真,所以整個表達式(i<7&&p[i]%2==1)的值為真,執(zhí)行j=j+p[i++]=0+11=11,i=1;,依此類推可以得出答案24。
41.B解析:本題考查函數(shù)調(diào)用時變量的作用域。形參是局部變量,函數(shù)調(diào)用完就失去意義了,所以在同一個C程序文件中,不同的函數(shù)體中可以使用名字相同的局部變量。注意:在函數(shù)之外定義的變量稱為外部變量,外部變量是全局變量,全局變量可以為本文件中其他函數(shù)所共用。它的有效范圍為:從定義變量的位置開始到本源文件結束.
42.B
\n本題考查函數(shù)調(diào)用的基本概念。調(diào)用函數(shù)時,實參的形式可以是具體的數(shù)值,也可以是表達式。實參將數(shù)值或表達式的值傳遞給形參,因而兩者的類型必須保持一致;形參在運算過程中會發(fā)生改變,但不一定會影響到實參值,所以可知兩者不共用內(nèi)存單元。
\n
43.B
44.B解析:此題考查了函數(shù)指針的概念,函數(shù)指針是定義一個指針指向函數(shù)的入口地址,可用這個指針來調(diào)用函數(shù)。
45.D解析:本題考查結構體變量的基本概念。引用結構體成員的方式為:
結構體變量名.成員名
“.”是“成員運算符”(分量運算符),如果成員本身又是一個結構體類型,則要用若干個成員運算符,一級一級地找到最低一級的成員。只能對最低級的成員進行賦值或存取以及運算,所以選項D)正確。
46.C解析:本題考核的知識點是函數(shù)的返回值.函數(shù)的返回值應該為return后面的表達式的值,在本題中的表達式為*p,*p指的是形參p所指存儲單元中的值,所以,4個選項中選項C符合題意。
47.B
48.B
49.A解析:本題主要考查結構體的內(nèi)存使用:對結構體而言,結構中不同的成員分別使用不同的內(nèi)存空間,一個結構所占內(nèi)存空間的大小是結構中每個成員所占內(nèi)存空間大小的總和,結構中每個成員相互獨立。
50.C解析:本題考查while循環(huán)。while循環(huán)的控制表達式k=1是個賦值表達式而不是邏輯表達式,所以循環(huán)體一次也不執(zhí)行。
51.C解析:C語句必須以分號結束,選項A是正確的。復合語句在語法上被看作一條語句,選項B也是正確的??照Z句也算是一條語句,因此如果空語句出現(xiàn)在條件或者循環(huán)語句中,一樣會被當作條件子句或者循環(huán)體來看待,所以選項c是錯誤的。賦值表達式末尾加分號就構成賦值語句,選項D正確。故本題應該選擇C。
52.B解析:本題考查函數(shù)的調(diào)用。函數(shù)fun2的作用是將形參x和y的值相乘后減去3,在fun2中的變量m是一個局部變量,它的值在fun2函數(shù)內(nèi)有效;在主函數(shù)中的m指的是全局變量,其值為13,所以fun2(a,b)/m的值為(7*5-3)/13,即2。
53.D數(shù)據(jù)的邏輯結構是指數(shù)據(jù)元素之間的邏輯關系的數(shù)據(jù)結構。數(shù)據(jù)的存儲結構則是數(shù)據(jù)的邏輯結構在計算機中的物理實現(xiàn),有時也稱作數(shù)據(jù)的物理結構。兩者的區(qū)別是數(shù)據(jù)的邏輯結構只涉及到數(shù)據(jù)之間抽象的數(shù)學關系。存儲結構則涉及到如何在計算機中通過對數(shù)據(jù)的物理存儲進行組織來表達數(shù)據(jù)元素之間的邏輯關系。比如在線性表的順序存儲中是利用物理存儲空間上的連續(xù)性來表達線性表中數(shù)據(jù)的前后件關系;在線性表的鏈式存儲中是通過指針域構成的邏輯鏈條來表達數(shù)據(jù)的前后件關系。一般的,一種數(shù)據(jù)的邏輯結構對應的物理實現(xiàn),即數(shù)據(jù)的存儲結構不止一種。因此選項D正確。
54.DD)【解析】數(shù)據(jù)的存儲結構是指數(shù)據(jù)的邏輯結構在計算機存儲空間中的存放形式,一種數(shù)據(jù)結構可以根據(jù)需要采用不同的存儲結構,常用的存儲結構有順序和鏈式結構。采用不同的存儲結構,其處理的效率是不同的。
55.C解析:根據(jù)算法的特性,算法必須有。個或多個輸入,和1個或多個輸出。
56.C解析:二分法查找是一種線性查找方法,其基本方法是:首先要用要查找的關鍵碼與線性表中間位置結點的關鍵碼值進行比較,這個中間結點把線性表分為兩個子表,比較相等則查找完畢,不等則根據(jù)查找結果確定下一步的查找應該在哪一個子表中進行,如此下去,直到找到滿足條件的結點:或者確定表中沒有這樣的結點。用二分法查找關鍵碼值11的順序如下所示,其中[]內(nèi)為本次栓索的子表,()內(nèi)為該子表的中間結果。從圖中可以看出,經(jīng)四次查找后,確定表中沒有這樣的結點。因此本題正確答案為選項C(4)。
第一次:[3,6,8,10,12,(15),16,18,21,25,30]
第二次:[3,6,(8),10,12],15,16,18,21,25,30
第三次:[3,6,8,[(10),(12)],15,16,18,21,25,30]
第四次:[3,6,8,10,[(12)],(15),16,18,21,25,30]查找失敗。
57.D解析:算法中的每一個步驟都必須是有明確意義的,不允許有模棱兩可的解釋,也不允許有多義性。算法的這個性質(zhì)即為算法的確定性。
58.A解析:本題考查的是指向函數(shù)的指針。函數(shù)指針的定義方式是:類型標識符(*指針變量名)()。其中,“類型標識符”為函數(shù)返回值的類型;“指針”指向函數(shù)的入口地址。
59.B解析:數(shù)據(jù)元素在計算機存儲空間中的位置關系與它們的邏輯關系不一定是相同的,而且一般不可能相同。數(shù)據(jù)的邏輯結構在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結構,也稱數(shù)據(jù)的物理結構。
60.C解析:本題考查數(shù)據(jù)庫的關系代數(shù)運算。R表中只有一個域名A,有兩個記錄(也叫元組),分別是m和n;S表中有兩個域名,分別是B和C,其所對應的記錄分別為1和3。注意觀察表T,它是由R的第一個記錄依次與S的所有記錄組合,然后再由R的第二個記錄與S的所有記錄組合,形成的一個新表。上述運算恰恰符合關系代數(shù)的笛卡兒積運算規(guī)則。關系代數(shù)中,笛卡兒積運算用“×”來表示。因此,上述運算可以表示為T=R×S。因此,本題的正確答案為C。
61.Ac語言中不存在<>運算符,B)錯誤;%兩邊必須都是整數(shù)(C)錯誤;x+y不能出現(xiàn)在賦值號的左邊,D)錯誤。
62.C字符型一維指針P只能指向一個一維數(shù)組如chars[3],而不能指向二維數(shù)組的地址,所以A)錯誤。P應該為字符型變量的地址,而不能為數(shù)組指針的地址,所以B)錯誤。k為數(shù)組指針,但如果想將s的地址賦給它,定義形式應為char(*k)[10]而不是char(*k)[3],所以D)錯誤。
63.D
64.A
65.B軟件設計包括軟件的結構設計、數(shù)據(jù)接口設計和過程設計。其中軟件結構設計主要包括系統(tǒng)由哪些子系統(tǒng)構成,以及這些子系統(tǒng)之間的關系是怎樣的,并將這些內(nèi)容編寫成文檔;數(shù)據(jù)接口設計的任務是為每個子系統(tǒng)設計其與其他子系統(tǒng)間的接口,并編寫成文檔,這個接口要是一個無二義的接口,不需要子系統(tǒng)的操作知識就可以使用;過程設計是指系統(tǒng)結構部件轉(zhuǎn)換成軟件的過程描述。
66.B解
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公共交通工具維保合同
- 化纖制毛巾被企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略研究報告
- 中藥材配方顆粒生產(chǎn)線企業(yè)制定與實施新質(zhì)生產(chǎn)力戰(zhàn)略研究報告
- 毛染整精加工企業(yè)縣域市場拓展與下沉戰(zhàn)略研究報告
- 文藝合作合同范本
- NSI設備維保協(xié)議
- 中藥材種植智能納米過濾器企業(yè)制定與實施新質(zhì)生產(chǎn)力戰(zhàn)略研究報告
- 可調(diào)節(jié)啞鈴套裝行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報告
- 中藥糖尿病足治療液行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報告
- 鎳鈷礦采選企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略研究報告
- 人教版三年級下冊數(shù)學第一單元 位置與方向(一)(單元練習)
- 2024年廣告部業(yè)務年度工作計劃樣本(3篇)
- 《大學生創(chuàng)新創(chuàng)業(yè)實務》課件-2.1創(chuàng)新思維訓練 訓練創(chuàng)新思維
- 能源管理軟件招標模板高效節(jié)能
- 城鄉(xiāng)環(huán)衛(wèi)保潔投標方案
- 大數(shù)據(jù)安全與隱私保護考核試卷
- 有效喝酒免責協(xié)議書(2篇)
- 《高血脂相關知識》課件
- DB31-T 255-2020 集中式空調(diào)(中央空調(diào))系統(tǒng)節(jié)能運行和管理技術要求
- 統(tǒng)編版語文六年級下冊3《古詩三首》課件
- 廣東清遠人文介紹
評論
0/150
提交評論