




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
2021-2022年四川省樂山市全國計算機等級考試C語言程序設計測試卷(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列程序的執(zhí)行結果是______。#include<stdio.h>unionun{inti;charc[2];};voidmain(){unionunx;x.c[0]=10;x.c[1]==1;printf("\n%d",x.i);}
A.266B.11C.265D.138
2.以下正確的字符串常量是()。A.“\\\”B.‘a(chǎn)bc’C.OlympicGamesD.“”
3.下面程序的運行結果是()#include<stdio.h>#include<string.h>main(){char*a="AbcdEf",*b="aBcD"a++;b++;printf("%d\n",strcmp(a,b));}
A.0B.負數(shù)C.正數(shù)D.無確定值
4.某完全二叉樹有256個節(jié)點,則該二叉樹的深度為()。
A.7B.8C.9D.10
5.下列二維數(shù)組的說明中,不正確的是()。
A.floata[][4]={0,1,8,5,9};
B.inta[3][4]
C.#defineN5floata[N][3]
D.inta[2][9.5];
6.下面不能正確表示a*b/(c*d)的表達式是()。
A.(a*b)/c*dB.a*b/(c*d)C.a/c/d*bD.a*b/c/d
7.下列程序段的時間復雜度為()。A.O(2n)B.O(n)C.O(n2)D.O(i*j)
8.有下列程序:程序執(zhí)行后的輸出結果是()。
A.654321
B.65432
C.65453452
D.654534521
9.
10.有定義語句:“intx,y;”,若要通過“scanf("%d,%d,&x,&y);”語句使變量x得到數(shù)值11,變量y得到數(shù)值12,下面四組輸入形式中,錯誤的是
A.1112<回車>B.11,12<回車>C.11,12<回車>D.11,<回車>12<回車>
11.由兩個棧共享一個向量空間的好處是______。
A.減少存取時間,降低下溢發(fā)生的機率
B.節(jié)省存儲空間,降低上溢發(fā)生的機率
C.減少存取時間,降低上溢發(fā)生的機率
D.節(jié)省存儲空間,降低下溢發(fā)生的機率
12.有以下程序:#includedstdi0.h>#definef(x)X*x*xmain(){inta=3,S,t;s=f(a+1);t=f((a+1));printf("%d,%d\n",S,t);}程序運行后的輸出結果是()。A.10,64B.10,10C.64,10D.64,64
13.設有inta=15,b=240;,則表達式(a&b)&b||b的值為______。
A.0B.1C.真D.假
14.
15.
16.
17.
18.下列關于字符串的說法中錯誤的是
A.在C語言中,字符串是借助于字符型一維數(shù)組來存放的,并規(guī)定以字符'\0'作為字符串結束標志
B.'\0'作為標志占用存儲空間,計入串的實際長度
C.在表示字符串常量的時候不需要人為在其末尾加入'\0'
D.在C語言中,字符串常量隱含處理成以'\0'結尾
19.
20.設x、y、z、t均為int型變量,則執(zhí)行以下語句后,t的值是()x=y(tǒng)=z=l;t=++x||++y&&++z;
A.不定值B.2C.1D.0
二、2.填空題(20題)21.數(shù)據(jù)的邏輯結構有線性結構和______兩大類。
22.x、y、x均為int型變量,描述“x、y和z中至少有兩個為正數(shù)”的表達式是______。
23.數(shù)據(jù)庫系統(tǒng)中實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件是______。
24.下面程序是把從終端讀入的20個字符作為字符串放在字符數(shù)組中,然后利用指針變量輸出上述字符串,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inti;chars[21],*p;
for(i=0;i<20;i++)
s[i]=getchar();
s[i]=【】;
p=【】;
while(*p)putchar(【】);
}
25.函數(shù)de1ete(s,i,n)的作用是從字符串s中刪除從笫i個字符開始的n個字符,請?zhí)羁铡?/p>
voidde1ete(chars[],inti,intn)
{intj,k,length=O;
whi1e(s[length])
【】
-i;
j=i;
}
if(【】)
{k=i+n;
if(i+n<=length)
whi1e(k<length)
s[j++]=s[k++];
s[j]='\0;}
26.下列語句的輸出結果是______。
chars[20]="aaaa",*sp=s;
puts(strcat(sp,"AAAAA"));
27.以下程序的輸出是【】。
main()
{
charstrl[]]="Howdoyoudo",*p1=strl;
strcpy(strl+strlen(strl)/2,"esshe");
printf("%s\n",p1);
}
28.已知字符A的ACSII碼值為65,以下語句的輸出結果是______。
charch='B';
printf("%c%d\n",ch,ch);
29.以下程序運行后的輸出結果是______。
main()
{inta=3,b=4,c=5,t=99;
i[(b<a&&a<C)t=a;a=c;c=t;
if(a<c&&b<C)t=b;b=a;a=t;
printf("%d%d%d\n",a,b,c);
}
30.若a是int型變量,則表達式(a=2*3,a*2),a+6的值為______。
31.下面程序的輸出結果是()。#include<stdio.h>main(){staticchara[]="china";char*ptr=a;while(*ptr){printf("%c",*ptr-32);ptr++;}}
32.開發(fā)軟件所需要的高成本和產(chǎn)品的低質(zhì)量之間有著尖銳的矛盾,這種現(xiàn)象被人們稱之為【】。
33.診斷和改正程序中錯誤的工作通常稱為【】。
34.以下程序運行后的輸出結果是()。main(){inta=3,b=4,c=5,t=79;if(b<a&&a<C)t=a;a=c;c=t;if(a<c&&b<C)t=b;b=a;a=t;printf("%d%d%d\n",a,b,C);}
35.下面程序
main()
{intx,y,m,n;
x=5;y=8;
m=++x,x;
n=y+y++;
printf("%d,%d,%d,%d",x,y,m,n);
}
運行后,x,y,m,n的值是______。
36.某二叉樹中度為2的結點有18個,則該二叉樹中有【】個葉子結點。
37.若給fun函數(shù)的形參s傳送字符串“∪∪6354'abc"(其中∪表示空格字符),則函數(shù)的返回值是【】。
longfun(chars[])
{longn;intsign;
for(;isspace(*s);s++);
sign=(*s=='-')?-1:1;
if(*s=='+'||*s=='-')s++;
for(n=0;isdigit(*s);s++)
n=10*n+(*s-'0');
returnsign*n;
}
38.下列程序的輸出結果是【】。
main()
{inti;
for(i=1;i=1;i++)
{if(i>4)
{printf("%d\n",i);
break;}
printf("%d\n",i++);}}
39.軟件工程的出現(xiàn)是由于【】。
40.下列程序中的函數(shù)stropy2()實現(xiàn)字符串兩次復制,即將t所指字符串復制兩次到s所指內(nèi)存空間中,合并形成一個新字符串。例如,若t所指字符串為:efgh,調(diào)用strcpy2后,s所指字符串為:efghefgh。請?zhí)羁铡?/p>
#include<stdio.h>
#include<string.h>
voidstrcpy2(char*s,char*t)
{char*p=t;
while(*s++=*t++);
s=【】;
while(【】=*p++);
}
main()
{charstr1[100]="abed",str2[]="efgh";
strcpy2(str1,str2);printf("%s\n",str1);
}
三、1.選擇題(20題)41.設x為int型變量,執(zhí)行以下語句,x=10;x+=x-=x-x;x的值為______。
A.10B.20C.30D.40
42.在int(*prt)[3];定義中,標識符prt()。
A.定義不合法
B.是一個指針數(shù)組名,每個元素都是一個指向整型變量的指針
C.是一個指針,它指向一個具有三個元素的一維數(shù)組
D.是一個指向整型變量的指針
43.在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)庫用戶能夠看見和使用的局部數(shù)據(jù)的邏輯結構和特征的描述是()
A.外模式B.邏輯模式C.概念模式D.物理模式
44.下列程序的輸出結果是()。main(){chara[7]"aO\OaO\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}
A.22B.76C.72D.62
45.下列描述中,不是線性表順序存儲結構特征的是
A.不便于插入和刪除B.需要連續(xù)的存儲空間C.可隨機訪問D.需另外開辟空間來保存元素之間的關系
46.對于長度為n的線性表,在最壞情況下,下列各種排序法所對應的比較次數(shù)中正確的是()。
A.冒泡排序為n/2B.冒泡排序為nC.快速排序為nD.快速排序為n(n-1)/2
47.數(shù)據(jù)庫系統(tǒng)在其內(nèi)部具有3級模式,用來描述數(shù)據(jù)庫中全體數(shù)據(jù)的全局邏輯結構和特性的是()
A.外模式B.概念模式C.內(nèi)模式D.存儲模式
48.結構化程序設計的3種結構是()。
A.順序結構、選擇結構、轉移結構
B.分支結構、等價結構、循環(huán)結構
C.多分支結構、賦值結構、等價結構
D.順序結構、選擇結構、循環(huán)結構
49.在設計程序時,應采納的原則之一是______。
A.程序結構應有助于讀者理解B.不限制goto語句的使用C.減少或取消注解行D.程序越短越好
50.以下對C語言函數(shù)的有關描述中,正確的是
A.在C語言中調(diào)用函數(shù)時,只能把實參的值傳給形參,形參的值不能傳送給實參
B.C函數(shù)既可以嵌套定義又可以遞歸調(diào)用
C.函數(shù)必須有返回值,否則不能使用函數(shù)
D.函數(shù)必須有返回值,返回值類型不定
51.以下對結構體類型變量的定義中,不正確的是()
A.typedefstructaa{intn;floatm;}AA;AAtdl;
B.#defineAAstructaaAA{intn;floatm;}tdl;
C.struct{intn;floatm;}aa;structaatdl;
D.struct{intn;floatm,}tdl;
52.下列變量說明語句中,正確的是
A.char:abc;B.chara;b;c;C.intx;z;D.intx,z;
53.設有定義:chars[10];inti=0;,以下不能將一行(不超過100個字符)帶有空格的字符串正確讀入的語句或語句組是()。
A.gets(s);
B.scanf("%s",s);
C.while((s[i++]=getchar())!='\n');s[i]='\0';
D.do{scanf("%c",&s[i]);}while(s[i++]!='\n');s[i]='\0';
54.有以下函數(shù)intaaa(char*s){char*t=s;while(*t++);t--;return(t-s);}以下關于aaa函數(shù)的功能的敘述正確的是A.求字符串s的長度B.比較兩個串的大小C.將串s復制到串tD.求字符串s所占字節(jié)數(shù)
55.下列寫法正確的是()。
A.main(){inti=3,j;j=5}
B.main(){inti=3;
C.main()
D.main(){;}
56.以下語句中存在語法錯誤的是A.charss[6][20];ss[1]="right?";
B.charss[][20]={"right?"};
C.char*ss[6];ss[1]="right?";
D.char*ss[]={"right?"};
57.有下列程序:main(){intk=5;while(--k)printf("%d",k-=3);printf("\n");}執(zhí)行后的輸出結果是()。
A.1B.2C.4D.死循環(huán)
58.以下敘述中錯誤的是
A.在程序中凡是以“#”開始的語句行都是預處理命令行
B.預處理命令行的最后不能以分號表示結束
C.#defineMAX是合法的宏定義命令行
D.C程序?qū)︻A處理命令行的處理是在程序執(zhí)行的過程中進行的
59.以下程序運行后,輸出結果是______。#include<stdio.h>#definePT5.5#difineS(x)PT*x*xmain(){inta=1,b=2;printf("%4.1f/n",S(a+b));}
A.49.5B.9.5C.22D.45
60.下列程序執(zhí)行的輸出結果是()。#include<stdio.h>main(){chara[2][4];strcpy(a,"are");strcpy(a[1],"you");a[0][3]='&';printf("%s\n",a);}
A.are&youB.youC.areD.&
四、選擇題(20題)61.輸出語句:prinff(”%d\n”,ll+011);的輸出結果是()。
A.20B.22C.022D.021
62.設pl和p2是指向一個int型一維數(shù)組的指針變量,k為int型變量,則不能正確執(zhí)行的語句是()。
A.k=*pl+*p2B.p2=k;C.pl=p2;D.k=*pl*(*p2.;
63.
64.
65.
66.結構化分析方法是面向()的自頂向下、逐步求精進行需求分析的方法
A.對象B.數(shù)據(jù)結構C.數(shù)據(jù)流D.目標
67.
68.
69.
70.以下敘述中錯誤的是()。A.C程序在運行過程中所有計算都以二進制方式進行
B.C程序在運行過程中所有計算都以十進制方式進行
C.所有C程序都需要編譯鏈接無誤后才能運行
D.C程序中整型變量只能存放整數(shù),實型變量只能存放浮點數(shù)
71.軟件工程出現(xiàn)的原因是
A.程序設計方法學的影響B(tài).軟件產(chǎn)業(yè)化的需要C.軟件危機的出現(xiàn)D.計算機的發(fā)展
72.
73.
74.
有以下程序段
intj;floaty;charname[50]:
scanf("%2d%f%s",&i,&.y,name):
當執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為()。
A.55566.0B.566.0C.7777.0D.566777.0
75.軟件設計包括軟件的結構、數(shù)據(jù)接口和過程設計,其中軟件的過程設計是指()
A.模塊間的關系B.系統(tǒng)結構部件轉換成軟件的過程描述C.軟件層次結構D.軟件開發(fā)過程
76.有以下程序:main{intx,i;for(i=l;i<=50;i++){x=i:if(x%2=0)if(x%3=0)if(X%7=0)printf(”%d,i)”;}}輸出結果是()。A.28B.27C.42D.4l
77.設有如下定義:int(*ptr);則以下敘述中正確的是()。
A.ptr是指向一維組數(shù)的指針變量
B.ptr是指向int型數(shù)據(jù)的指針變量
C.ptr是指向函數(shù)的指針,該函數(shù)返回一個int型數(shù)據(jù)
D.ptr是一個函數(shù)名,該函數(shù)的返回值是指int型數(shù)據(jù)的指針
78.有以下程序段當執(zhí)行上述程序段,從鍵盤上輸A,555667777123后,y的值為()。
A.566.0B.55566.0C.7777.0D.566777.0
79.已知大寫字母A的ASCIl碼的值是65,小寫字母a的ASCIl碼的值是97,以下不能將變量。中的大寫字母轉換為對應小寫字母的語句是()。
A.
B.
C.
D.
80.
當c的值不為0時,在下列選項中不能正確將c的值賦給變量a、b的是()。
A.c=b=a;B.(a=c)C.D.(b=c);E.(a=c)&&(b=c);F.a=c=b;
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:根據(jù)整型形參n的值,計算如下公式的值。t=1-1/(2*2)-1/(3*3)-…-l/(n*n)例如,當n=7時,t=0.488203。請修改函數(shù)proc()中的錯誤,使它能得出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:
六、程序設計題(1題)82.下列程序定義了M×M的二維數(shù)組,并在主函數(shù)中賦值。請編寫函數(shù)proc(),函數(shù)的功能是:求出數(shù)組周邊元素的平均值并作為函數(shù)值返回給主函數(shù)中的s。例如,若a數(shù)組中的值為:21098則返回主程序后,s的值為3.750000。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.A解析:由于本題定義的是共用體,所以成員表列中的整型變景x與字符數(shù)組c共占用同—個存儲單元,且此存儲單元為2個字節(jié),通常c[0]位于低字節(jié),c[1]位于高字節(jié),所以x.i的值為266。
2.D在C語言中,字符串常量是用雙引號標注的字符序列,因此B選項和C選項不正確。字符序列中可包含一些轉義字符,轉義字符以“\\”開頭。A選項中包含3個前兩個(\\\\)代表一個“\\”字符,后面一個為“””。因為\\”被看作一個“””,所以該字符串缺少一個結束的“””。因此A選項不正確。D選項的兩個“”之間沒有任何字符,代表的是一個空串,是合法的字符串常量,因此D選項正確。B選項的abc應該使用雙引號標注。故本題答案為D選項。
3.C
4.C
5.D解析:C語言規(guī)定,對于二維數(shù)組,只可以省略第一個方括號中的常量表達式,而不能省略第二個方括號中的常量表達式:二維數(shù)組的一般定義格式是:類型說明符數(shù)組名[常量表達式][常量表達式]。
6.A
7.C
8.C程序首先定義整型變量a和b,a的初值為123456。接著通過while循環(huán),判斷a的值是否為0,若不為0,則執(zhí)行循環(huán)體。每次循環(huán)將a當前值的個位數(shù)字(a%10)賦給b,a自身除以10。再通過switch語句判斷b的值執(zhí)行對應分支語句。所以對應a的每個個位數(shù),b的取值為6,5,4,3,2,1。當b取值為6時,執(zhí)行default,輸出6,接著繼續(xù)執(zhí)行case1,通過break退出switch。執(zhí)行下一次循環(huán),當b取值為5時,執(zhí)行case5輸出5。執(zhí)行下一次循環(huán),當b取值為4時,執(zhí)行case4輸出4,繼續(xù)執(zhí)行case5輸出5。接著執(zhí)行下一次循環(huán),當b取值為3時,執(zhí)行case3輸出3,執(zhí)行case4輸出4,執(zhí)行case5輸出5;當b取值為2時,執(zhí)行case2輸出2,通過break退出switch;當b取值為1時,執(zhí)行break,此時a的取值為0,循環(huán)終止。綜上,程序輸出結果為:65453452。本題答案為C選項。
9.C
10.A解析:本題考核的知識點是scanf()函數(shù)的運用。seanf()函數(shù)有兩個參數(shù),第一個參數(shù)為輸入格式字符串,第二個參數(shù)為輸入變量地址列表,在scallf()語句中非格式字符可以作為輸入時數(shù)據(jù)的間隔,輸入時必須原樣輸入,在本題中輸入格式串為%d,%d其中“,”為非格式字符,所以輸入時必須原樣輸入。所以4個選項中選項A符合題意。
11.B
12.A本題考查帶參數(shù)的宏定義。第一次函數(shù)調(diào)用求S的值,x=a+1,所以X*X*X應寫成a+1*a+1*a+1,沒有括號優(yōu)先級,結果為l0,第二次函數(shù)調(diào)用x*X*X可寫成(a+1)*(a+1)*(a+1),所以結果為43=64。
13.B
14.C
15.A
16.C
17.A
18.B解析:'\\0'作為標志占用存儲空間,但是不計入串的實際長度。當給一個字符型指針賦值時,賦給這個指針的是這個字符串的地址。
19.A
20.C
21.非線性結構非線性結構
22.((x>0)&&<y>0))‖(x>0)&&(z>0)‖y>0)&&(z>0))((x>0)&&<y>0))‖(x>0)&&(z>0)‖y>0)&&(z>0))解析:題目要求“x、y和z中至少有兩個為正數(shù)”,即x、y和x這3個數(shù)中必須有兩個是正數(shù),且這3個數(shù)中的哪兩個數(shù)都有可能是正數(shù),所以它們之間是或的關系。
23.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的管理機構,它是一種系統(tǒng)軟件,負責數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護、控制及保護和數(shù)據(jù)服務等。
24.\0's*p++\\0'\r\ns\r\n*p++解析:本題先通過for循環(huán)從鍵盤接收20個字符,然后在串尾賦一空值'\\0'作為串結束標志。再使指針p指向串的首地址。最后通過while循環(huán)對字符串進行掃描并輸出。
25.length++i<lengthlength++\r\ni<length解析:第—個循環(huán)極有可能是計算串的長度,在i<=length時字符才被刪除,被刪除的是從第i個到第i+n或最后—個間的所有字符。刪除前,應判斷i<=length。由于已經(jīng)進行了-i運算,故實際應填入i<length。
26.aaaaAAAAAaaaaAAAAA解析:函數(shù)strcat(sp,'AAAAA')的作用是將字符中“AAAAA”連接到字符串sp的末尾,并自動覆蓋字符數(shù)組sp末尾的\'\\0\'。
27.HowdoessheHowdoesshe解析:strcpy(strl,s1):字符串拷貝函數(shù),作用是將字符串s1拷貝到字符數(shù)組strl中去。strlen(str):測試字符串str的長度,函數(shù)的值為字符串中實際長度,不包括\'\\0\'在內(nèi)。本題中strlen(strl)的值為13,則strcpy(strl+strlen(strl)/2,'esshe');相當于strcpy(strl+6,'esshe');,因此可得答案為Howdoesshe。
28.B66B66解析:printf函數(shù)的功能是按照指定的格式,在標準輸出設備上輸出數(shù)據(jù),它有兩種參數(shù):格式控制參數(shù)和輸出項參數(shù)。本題中,printf('%c%d\\n',ch,ch)表示以字符格式和十進制整數(shù)格式輸出ch,B的ACSII碼值為66,即在計算機中B的十進制整數(shù)格式是66。所以,輸出為B66。
29.45994599解析:本題是一個陷阱題,以書寫格式來考查考生對if語句的理解.if語句只對緊跟其后的一條語句或語句塊產(chǎn)生作用。因此,題目中兩條if語句只有t=a;和t=b是if的子句。第1條if語句中b<a為假,所以跳過語句t=a;,執(zhí)行a=c;c=t;后,a=5、b=4、c=99。第2條if語句的判斷條件a<c&&b<c為真,所以后面三條語句都被執(zhí)行,這三條語句構成一次a和b的內(nèi)容交換。所以最后輸出的結果是:4599。
30.1212解析:本題考查逗號表達式的運算規(guī)則。逗號表達式的基本格式為:“表達式1,表達式2,…”,其整個表達式的結果取最后一個子表達式的值。本題中首先計算逗號表達式中的第1個表達式a=2*3=6,然后計算第2個表達式a*2,這時整個表達式的值為12,但要注意,因為第2個表達式并沒有給a賦值,因此a的值不變;接下來執(zhí)行最后一個表達式a+6=12,所以整個表達式最后的值為12。
31.CHINA
32.軟件危機軟件危機
33.程序調(diào)試程序調(diào)試解析:程序調(diào)試的任務是診斷和改正程序中的錯誤。程序調(diào)試與軟件測試不同,軟件測試是盡可能多地發(fā)現(xiàn)軟件中的錯誤。先要發(fā)現(xiàn)軟件的錯誤,然后借助于調(diào)試工具找出軟件錯誤的具體位置。軟件測試貫穿整個軟件生命期,而調(diào)試主要在開發(fā)階段。
34.45794579解析:本題考查的是條件判斷語句。本題特別需要注意的是“;”的問題,不能把“t=a;a=c;c=t;”誤認為是第一個if的語句,實際上,只有“t=a;”才是第一個if的語句。所以判斷第一個if語句的表達式不成立后,執(zhí)行的是“a=c;c=t;”,此時a=5,c=79。然后判斷第二個if語句的條件表達式,表達式成立,執(zhí)行后面的3條語句,讓a、b、c分別為4、5和79。
35.69616。6,9,6,16。解析:賦值語句m=++x,x;是將逗號表達式的值賦給m,x和m的值都是6,賦值語句n=y+y++;是將y+y的值16賦給n,再執(zhí)行y的自加運算,y的值變?yōu)?。
36.1919解析:根據(jù)二叉樹的性質(zhì):在任意一棵二叉樹中,度為。的結點(即葉子結點)總是比度為2的結點多一個。本題中度為2的結點數(shù)為18,故葉子結點數(shù)為18+1=19個。
37.63546354解析:函數(shù)fun的第一個for循環(huán)跳過字符串的前導空白符,接著判斷第一個非空白符是否是負號,若是,則置變量sign為-1;否則,置變量sign為1。接著的if語句在第一個非空白字符是負號或正號時,跳過該字符。以后的for循環(huán)將后面的數(shù)字符當作十進制數(shù)的各位數(shù)字轉換為一個長整數(shù)n,當遇字符a時,結束循環(huán)。最后,函數(shù)返回sign與n的乘積。所以若調(diào)用函數(shù)時提供的實參是“∪∪6354abc”,則函數(shù)的返回值是6354。
38.1351\r\n3\r\n5解析:本題考查了for循環(huán)語句的使用,break語句用在本題中是結束for循環(huán)直接跳出循環(huán)體外。當i=1時,因為if語句條件不滿足,所以直接執(zhí)行printf('%d\\n',i++);輸出1,同時i自加1;執(zhí)行第二次for循環(huán)時,i:3;同樣的if語句條件不滿足,所以直接執(zhí)行printf('%d\\n',i++);輸出3,同時i自加1執(zhí)行第三次for循環(huán)時,i=5,訌語句條件滿足,所以執(zhí)行printf('%d\\n',i)輸出5,然后break語句跳出了for循環(huán)。
39.軟件危機的出現(xiàn)軟件危機的出現(xiàn)
40.s-1或--s或s--*s++s-1或--s或s--\r\n*s++解析:在函數(shù)。strcpy2()中,首先將指針t保存到指針p中,然后進入第1個while()循環(huán),其循環(huán)條件為*s++=*t++,其中“*”和“++”運算符的優(yōu)先級相同,但他們的結合性為從右至左,而“=”運算符優(yōu)先級比較低,所以原表達式等價于(*s++)=(*(t++)),即將t當前所指內(nèi)容復制到s當前所指地址中,然后讓s和t同時往后移動一位,整個表達式返回的是復制給s的值。所以,當t所指內(nèi)容是字符串結束符'\\0',時,while循環(huán)結束,原先t所指的整個字符串也就復制到s所指的地址中去了。但是,while循環(huán)最后一次判斷也會讓s和t往后移動一位,即此時s指向了字符串結束符'\\0'的后一位。所以第2次復制字符串之前,應先將s指針往回移動一位,故前一空應該填入s-1或其他等價形式。接下來的while循環(huán)實現(xiàn)第二次復制,照抄第1次的while循環(huán)就行,故后一空應填入*s++。
41.B解析:本題x=10,表達式“x+=x-=x-x;”的求解步驟如下:先進行x-=x-x的運算,相當于)x=x-(x-x)=x=10;再進行x+=x的運算,即x=x+x=20。
42.C解析:此題的關鍵是要分清指針數(shù)組與指向一維數(shù)組指針之間的不同,題中的說明語句定義了一個指針變量prt,它指向包含三個整數(shù)元素的一維數(shù)組。要注意:*prt兩側的圓括號不能缺少,如果寫成*ptr[3],則ptr與[3]先結合,是數(shù)組,然后再與前面的。號結合,則*ptr[3]將是一個指針數(shù)組。
43.AA)【解析】外模式也稱子模式,它是數(shù)據(jù)庫用戶(包括應用程序員和最終用戶)能夠看見和使用的局部數(shù)據(jù)的邏輯結構和特征的描述,它是由概念模式推導出來的.是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某一應用有關的數(shù)據(jù)的邏輯表示。一個概念模式可以有若干個外模式。
44.C解析:函數(shù)sizeof(a)的功能:求出字符串a(chǎn)中的字符占用存儲空間的大小,由于字符數(shù)組a有長度為7,所以i=7;函數(shù)strlen(a)的功能:求出字符串a(chǎn)的長度。而每個字符串都以'\\0'為字符串的結束標記,所以j的值等于2。
45.D解析:線性表的順序存儲是用一片連續(xù)的空間來存放數(shù)據(jù)元素,其特點是邏輯上相鄰的元素在物理位置上也相鄰。數(shù)據(jù)元素之間邏輯上的先后關系自動隱含在物理位置的相鄰元素之中,因此,不需要另外開辟空間來保存元素之間的關系。
46.D在最壞情況下,冒泡排序和快速排序的比較次數(shù)都是n(n一1)/2?!局R拓展】所謂冒泡排序,就是將相鄰的兩個數(shù)據(jù)比較,如前面的數(shù)據(jù)大于后面的,則位置互換。這樣不停地比較、互換,其實就是把大的數(shù)往后排,小的數(shù)往前排(就像冒泡一樣冒出來了)。
47.BB)【解析】概念模式,也稱邏輯模式,是對數(shù)據(jù)庫系統(tǒng)中全局數(shù)據(jù)邏輯結構的描述,是全體用戶應用公共數(shù)據(jù)視圖。它不涉及具體的硬件環(huán)境與平臺,與其體的軟件環(huán)境也無關。
48.D結構化程序設計的基本要點:①采用自頂向下、逐步求精的程序設計方法;②任何程序都可由順序、選擇和循環(huán)3種基本控制結構構造。
49.A解析:程序設計的風格主要強調(diào)程序的簡單、清晰和可理解性,以便讀者理解。因此選項A是正確答案。程序濫用goto語句將使程序流程無規(guī)律,可讀性差;添加的注解行有利于對程序的理解,不應減少或取消;程序的長短要依照實際需要而定,并不是越短越好。因此選項B、C、D都是錯誤的。
50.A解析:C語言中的函數(shù)可以進行遞歸調(diào)用,但不能在函數(shù)中定義函數(shù),即函數(shù)不能嵌套定義。函數(shù)可以沒有返回值,若有返回值,則返回值類型必須確定。
51.C解析:定義結構體類型的變量有幾種的方法如下:
①定義結構體類型的同時,定義結構體類型的變量,如下面的定義中在定義結構體類型aa的同時定義了該類型的變量tdl。上述B)項中將宏名AA用宏體structaa替換進去后,與該定義形式一樣,因此是正確的。這一定義形式中,結構體類型名明是可以省略的,因此,D)項也是正確的。
structaa
{...
}tdl;
②先定義結構體類型,然后再定義結構體類型的變量,形式如下:
structaa
{
…
};
structaatdl;
這種定義形式也可演變?yōu)?,先用類型定義語句typedef將該結構體類型定義成一個類型名AA,然后直接用該類型名AA去定義一個變量(這時不再需要使用關鍵字struct了)。這就是A)項的形式。
52.D
53.B解析:本題考查標準輸入輸出函數(shù)和循環(huán)語句。gets(s)函數(shù)的作用是將輸入的字符讀入字符串s,直到遇到回車。而scanf()數(shù)接收字符串時的結束標志為回車或者空格。因此選巧
54.A解析:aaa()函數(shù)中,首先定義了一個字符指針t指向形參s,然后通過一個while循環(huán)讓指針\u3000t不斷遞增,直到t指向字符串結束標志處。當t指向結束標志處時,由于后綴++運算符的原因,它還會被再遞增1,所以接卜來的t--;語句讓它回到結束標志處。最后返回t-s,因此s還是指向字符串第1個字符處,而t指向了字符串結尾,故返回值為字符串的長度值。
55.D解析:本題考查語句的基本構成。選項A)中j=5后面少了一個分號:選項B)中少了“}”;選項C)不是一個完整的函數(shù)定義格式,一個完整的函數(shù)定義格式還包括一對花括號:選項D)正確,是一個空語句。
56.A數(shù)組定義后,不可以對數(shù)組整體賦值,s是一維數(shù)組,因ss[1]是一維字符數(shù)組,即字符串,字符串賦值可以使用strcpy(ss[1],'right\'\');這樣的形式,而選項A)中對二維數(shù)組中的第“1維(相當于一個一維數(shù)組)賦值,是不可以的。選項B)和D)是定義時對數(shù)組初始化,這是可以的。選項C)中,將字符串在內(nèi)存中的首地址賦給指針數(shù)組的一個元素,這是可以的。
57.A解析:在程序語句中,k的初始值為5,進行第1次while循環(huán)后,k自減1為4,非0,執(zhí)行循環(huán)體里的printf語句,輸出1,此時k的值變?yōu)?。程序執(zhí)行第2次循環(huán)時,k自減1變?yōu)?,為假,退出while循環(huán)語句。所以程序的最后結果為1。
58.D解析:在C語言中,凡是以“#”開頭的行都稱為編譯預處理命令行,如#include、#define、#if等,每行的末尾不得用“;”結束,以區(qū)別于C語句、定義和說明語句。選項C中的宏定義為不帶參數(shù)的宏命令行,宏名之后可以有替換文本,也可以沒有。編譯預處理是在編譯程序?qū)源程序進行編譯前執(zhí)行的.當然也在程序執(zhí)行之前執(zhí)行,因此選項D是錯誤的。
59.B解析:C語言中宏替換只是字符替換,因此:S(a+b)=PT*a+b*a+b=5.5*1+2*1+2=9.5。
60.A解析:strcpy(a,'are')中數(shù)組名a代表數(shù)組首地址的地址常量,該操作把are復制到a中,a[0][3]=\'&\',且strcpy(a[1],'you')把you復制到a[1]中,故輸出a為“are&you”。
61.Aprintf(”%d\n”,ll+叭1),11為十進制,011為八進制形式,打印格式%d表示十進制格式輸出,因此,先將八進制數(shù)轉化為十進制,011(8)=81s1+1+80=9,相當于printf(”%d\n”,ll+9),故答案為20,A選項正確。
62.B本題主要考查了一維數(shù)組指針的賦值和用指針引用數(shù)組元素進行運算。選項B)中p2為指向int型變量的指針,而k為int型變量,不能將int型變量直接賦值給指向int型變量的指針,所以選項B)錯誤,應該為p2=&k。
63.B
64.D
65.C
66.CC?!窘?/p>
溫馨提示
- 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è)如何通過私域流量運營提升2025年銷售轉化率
- 學校2025年衛(wèi)生工作總結模版
- 健康養(yǎng)老產(chǎn)業(yè)城鄉(xiāng)協(xié)同發(fā)展策略
- 以區(qū)塊鏈技術推動商業(yè)供應鏈的透明化改革
- 從教育角度看待區(qū)塊鏈與知識產(chǎn)權的未來
- 醫(yī)學教育與醫(yī)療安全的緊密結合-以俯臥位為例
- 2025年運管所應急救援預案演練總結模版
- 中小學思想政治教育一體化推進方案
- 原油儲存項目發(fā)展前景分析
- 小學生養(yǎng)成好習慣演講稿
- 2024中考英語試題分類匯編:非謂語(含解析)
- 第七屆江西省大學生金相技能大賽知識競賽單選題題庫附有答案
- 第9課++友好相處++學會合作+第2課時 【中職專用】中職思想政治《心理健康與職業(yè)生涯》高效課堂 (高教版基礎模塊)
- 四年級美術國考測試題附有答案
- 專題八 概率與統(tǒng)計(2020-2024)五年高考《數(shù)學》真題分類匯編(解析版)
- 供貨保證措施以及應急保障措施
- 任務6-2 機場安檢崗位的設置課件講解
- 倫理與社會責任智慧樹知到期末考試答案章節(jié)答案2024年浙江大學
- 物聯(lián)網(wǎng)技術概論智慧樹知到期末考試答案章節(jié)答案2024年西安交通大學
- (正式版)SHT 3075-2024 石油化工鋼制壓力容器材料選用規(guī)范
- 幼兒園大班語言《睡睡鎮(zhèn)》課件
評論
0/150
提交評論