版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2021-2022年山東省青島市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.C語言中,組成數(shù)據(jù)文件的成分是()。A.A.記錄
B.數(shù)據(jù)行
C.數(shù)據(jù)塊
D.字符(字節(jié))序列
2.若有定義“intb[8],*p=b;”,則p+6表示()。
A.數(shù)組元素b[6]的值B.數(shù)組元素b[6]的地址C.數(shù)組元素b[7]的地址D.數(shù)組元素b[0]的值加上6
3.有定義語句:“int*p[4];”,以下選項中與此語句等價的是()。
A.intp[4];B.int**P;C.int*(p[4]);D.int(*p)[4];
4.以下程序的輸出結(jié)果是()。A.1010B.99C.910D.109
5.歸并排序采用的算法設(shè)計方法屬于()
A.歸納法B.分治法C.貪心法D.回溯方法
6.以下敘述中正確的是()。
A.局部變量說明為static存儲類,其生存期將得到延長
B.全局變量說明為static存儲類,其作用域?qū)⒈粩U大
C.任何存儲類的變量在未賦初值時,其值都是不確定的
D.形參可以使用的存儲類說明符與局部變量完全相同
7.以下敘述中錯誤的是
A.在程序中凡是以“#”開始的語句行都是預(yù)處理命令行
B.預(yù)處理命令行的最后不能以分號表示結(jié)束
C.#defineMAX是合法的宏定義命令行
D.C程序?qū)︻A(yù)處理命令行的處理是在程序執(zhí)行的過程中進行的
8.下面是有關(guān)C語言字符數(shù)組的描述,其中錯誤的是()。
A.不可以用賦值語句給字符數(shù)組名賦字符串
B.可以用輸入語句把字符串整體輸入給字符數(shù)組
C.字符數(shù)組中的內(nèi)容不一定是字符串
D.字符數(shù)組只能存放字符串
9.若在定義語句:inta,b,c,*p=&c;之后,接著執(zhí)行以下選項中的語句,則能正確執(zhí)行的語句是()。
A.scanf("%d",a,b,c);
B.scanf("%d%d%d",a,b,c):
C.scanf("%d",p);
D.scanf("%d",&p);
10.
11.有以下程序:main{chara=a,b;printf("%c,",++a);printf("%c\n",b=a++):)程序運行后的輸出結(jié)果是()。A.b,bB.b,cC.a,bD.a,c
12.設(shè)有定義:int?x=2,以下表達式中,值不為6的是()。
A.2*<.x+=2B.x++.2*xC.x=x*(1+x)D.x*=x+1
13.有如下程序段:inta[10]={1,2,3,4,5,6,7,8,9,10};int*p=&a[3],b;b=P[5];則b的值是()。
A.5B.6C.9D.8
14.有以下程序:
程序運行后的輸出結(jié)果是()。
A.4321098765B.5678901234C.0987654321D.0987651234
15.若fp是指向某文件的指針,且尚未讀到文件末尾,則函數(shù)feof(fp)的返回值是()。
A.EOFB.-lC.非零值D.0
16.有以下程序:#include<stdio,h>main(){charc1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);}當(dāng)運行時輸入:a<回車>后,以下敘述正確的是()。
A.變量c1被賦予字符a,c2被賦予回車符
B.程序?qū)⒌却脩糨斎氲诙€字符
C.變量c1被賦予字符a,c2中仍是原有字符2
D.變量c1被賦予字符a,c2中將無確定值
17.以下選項中關(guān)于C語言算術(shù)表達式的敘述中錯誤的是()。
A.可以通過使用圓括號來改變算術(shù)表達式中某些算術(shù)運算符的計算優(yōu)先級
B.C語言采用的是人們熟悉的四則運算規(guī)則,即先乘除后加減
C.算術(shù)表達式中,運算符兩側(cè)類型不同時,將進行類型之間的轉(zhuǎn)換
D.C語言僅提供了“+”“-”“*”“/”這4個基本算術(shù)運算符
18.以下選項中合法的C語言常量是()。
A.‘C-STR’B.2014.1C.”\1.0D.2EK
19.下面排序算法中,初始數(shù)據(jù)集的排列順序?qū)λ惴ǖ男阅軣o影響的是()
A.堆排序B.插入排序C.冒泡排序D.快速排序
20.有以下程序:#include<stdio.h>main(){charch=‘1’;while(ch<‘9’){printf(“%d”,ch-‘0’);ch++;}}程序運行后的輸出結(jié)果是()。
A.12345678B.01234567C.0D.1
二、2.填空題(20題)21.下列程序執(zhí)行輸出的結(jié)果是______。
#include<stdio.h>
f(intA)
{intb=0;
staticc=7;
a=c++;b++;
return(A);
}
main()
{inta=2,i,k;
for(i=0;i<2;i++)
k=f(a++);
printf("%d\n",k);
}
22.以下程序統(tǒng)計從終端輸入的字符中大寫字母的個數(shù)。用#號作為輸入結(jié)束標志,請?zhí)羁铡?include<stdio.h>#include<ctype.h>main(){intnum[26],i;charc;for(i=0;i<26;i++)num[i]=0;();while(c!='#'}{if(isupperC)num[c-65]+=1;}for(i=0;i<26;i++)if(num[i])printf("%c,%d\n",i+65,num[i]);}
23.若有以下程序:
main()
{inta[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,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í)行后的輸出結(jié)果是【】。
24.在一個容量為25的循環(huán)隊列中,若頭指針front=16,尾指針rear=9,則該循環(huán)隊列中共有上【】個元素。
25.下列程序的輸出結(jié)果是______。
main()
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break;
elsei--;}
i+=11;
a+=i;
}
printf("%d\n",A);
}
26.算法執(zhí)行過程中所需要的存儲空間稱為算法的______。
27.數(shù)據(jù)庫保護分為:安全性控制、______、并發(fā)性控制和數(shù)據(jù)的恢復(fù)。
28.以下程序的輸出結(jié)果是【】。
main()
{ints,i;
for(s=0,i=1;1<3;i++,s+=i);
printf("%d\n",s);
}
29.以下函數(shù)fun用于求兩個整數(shù)a和b的最大公約數(shù)。
fun(a,B)
inta,b;
{inti,j,m,n;
if(a>B)
{m=a;a=b;【】;}
i=a;j=b;
while((n=【】)!=0)
{j=i;i=【】;}
return(i);
}
30.閱讀下列程序,則程序的輸出結(jié)果為【】。
#include"stdio.h"
structty
{intdata;
charc;};
main()
{structtya={30,'x'};
fun(a);
printf("%d%c",a.data,a.c);}
fun(structtyb)
{b.data=20;
b.c='y';}
31.若有程序:
main()
{inti,j;
scanf('i=%d,j=%d";&i,&j);
printf("i=%d,j=%d\n",i,j);
}
要求給i賦10,給j賦20,則應(yīng)該從鍵盤輸入上【】。
32.下列軟件系統(tǒng)結(jié)構(gòu)圖的寬度為[]。
33.下列程序的輸出結(jié)果是【】。
voidfun(int*n)
{while((*n)--);
printf("%d",++(*n));
}
main()
{inta=1000;
fun(&a);
}
34.設(shè)有如下定義
#defineMYSWAP(z,x,y){z=x;x=y;y=z;}
floata=5,b=16,c;
MYSWAP(______,a,b);
35.以下程序的運行結(jié)果是【】。
main()
{char*k="aeiou";
for(;*k;k++)printf("%c",*k);
}
36.以下程序的運行結(jié)果是【】。
#include<stdio.h>
longfib(intg)
{switch(g)
{case0:return0;
case1:
case2:return1;}
return(fib(g-1)+fib(g-2));}
main()
{longk;
k=fib(5);
printf("k=%5ld\n",k);}
37.診斷和改正程序中錯誤的工作通常稱為【】。
38.以下程序的運行結(jié)果是【】。
#include<stdio.h>
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
case3:a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
39.若s是int型變量,且s=8,則s%3+(s+1)%3表達式的值為()。
40.若有以下程序
main()
{chara;
a='H'-'A'+'0';
printf("%c\n",A);
}
執(zhí)行后輸出結(jié)果是【】。
三、1.選擇題(20題)41.若有定義:char*st="howareyou";下列程序段中正確的是
A.chara[11],*p;strcpy(p=a+1,&st[4]);
B.chara[11];strcpy(++a,st);
C.chara[11];strcpy(a,st);
D.chara[],*p;strcpy(p=&a[1],st+2);
42.以下定義語句中正確的是
A.inta=b=0;
B.charA=65+1,b=′b′;
C.floata=1,*b=&a,*c=&b;
D.doublea=0.0;b=1.1;
43.已知形成鏈表的存儲結(jié)構(gòu)如下圖所示,則下述類型描述中的空白處應(yīng)填______。struct1ink{chardata;}node;
A.structlinknext
B.link*next
C.sluctnextlink
D.structlink*next
44.有以下程序:main(){intk=5,n=0;while(k>0);{switch(k){default;break;case1:n+=k;case2;case3:n+=k;}k--;}printf("%d\n",n);}程序運行后的輸出結(jié)果是______。
A.0B.4C.6D.7
45.對關(guān)系S和R進行集合運算,結(jié)果中既包含S中的所有元組也包含R中的所有元組,這樣的集合運算稱為()
A.并運算B.交運算C.差運算D.積運算
46.下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()。
A.便于用戶、開發(fā)人員相互理解和交流
B.反映用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)
C.作為確認測試和驗收的依據(jù)
D.便于開發(fā)人員進行需求分析
47.以下對C語言函數(shù)的有關(guān)描述中,正確的是
A.在C語言中調(diào)用函數(shù)時,只能把實參的值傳給形參,形參的值不能傳送給實參
B.C函數(shù)既可以嵌套定義又可以遞歸調(diào)用
C.函數(shù)必須有返回值,否則不能使用函數(shù)
D.函數(shù)必須有返回值,返回值類型不定
48.有以下程序段intm=0,n=0;charc='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若從鍵盤上輸入:10A10<回車>,則輸出結(jié)果是
A.10,A,10B.10,a,10C.10,a,0D.10,A,0
49.下述程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){chara=3,b=1;charc=a^b<<2;printf("%d",C;}
A.1B.7C.3D.2
50.以下程序段的輸出結(jié)果是______。main(){chars1[10],s2[10],s3[10];scanf("%s",s1);gets(s2);gets(s3);puts(s1);puts(s2);puts(s3);}輸入數(shù)據(jù)如下:(此處<CR>代表回車符)aaa<CR>bbb<CR>
A.aaabbbB.aaabbbC.aaa\0bbb\0D.aaabbb
51.有以下程序段intn=0,p;do{scanf(“%d”,&p);n++;}while(p!=12345&&n<3);此處do-while循環(huán)的結(jié)束條件是
A.P的值不等于12345并且n的值小于3
B.P的值等于12345并且n的值大于等于3
C.P的值不等于12345或者n的值小于3
D.P的值等于12345或者n的值大于等于3
52.有以下程序main(){intp[7]={11,13,14,15,16,17,18},i=0,k=0;while(i<7&&p[i]%2){k=k+p[i]];i++;}printf("%d\n",k);}執(zhí)行后輸出的結(jié)果足
A.58B.56C.45D.24
53.算法的時間復(fù)雜度是指()A.執(zhí)行算法程序所需要的時間B.算法程序的長度C.算法程序中的指令條數(shù)D.算法執(zhí)行過程中所需要的基本運算次數(shù)
54.設(shè)有定義:10ngx=-123456L,則以下能夠正確輸出變量x值的語句是()。
A.printf("x=%d\n",x);
B.printf("x=%1d\n",x);
C.peintf("x=%8dL\n",x);
D.printf('x=%LD\n",x);
55.以下程序的輸出結(jié)果是()。#include<stdio.h>main(){inta[3][3]={0,1,2,0,1,2,0,1,2},i,j,s=1;for(i=0;i<3;i++)for(j=i;j<=i;j++)s+=a[i][a[j][j]];printf("%d\n",s);}
A.3B.4C.1D.9
56.標準庫函數(shù)fgets(s,n,file)的功能是()。
A.從文件file中讀取長度為n的字符串存入字符數(shù)組s中
B.從文件file中讀取長度不超過n-1個字符的字符串放到字符數(shù)組s中
C.從文件file中讀取n個字符串存入字符數(shù)組s中
D.從文件file中讀取長度為n-1個字符的字符串存入字符數(shù)組s中
57.以下程序的輸出結(jié)果是()structHAR{intx,y;structHAR*p;}h[2];main(){h[0].x=1;h[0].y=2;h[1].x=3;h[1].y=4;h[0].p=&h[1];h[1].p=h;printf("%d%d\n"h[0].p)->x,(h[1].p)->y);}
A.12B.23C.14D.32
58.有下列二叉樹,
對此二叉樹前序遍歷的結(jié)果為()。
A.ACFHIBEDGB.ABCDEFGHIC.ABDEGCFHID.ABCDEFHGI
59.下列是用戶自定義標識符的是
A._w1B.3_xyC.intD.LINE-3
60.下面程序的輸出結(jié)果是()。#defineSQR(X)2*X+1main(){inta,b,C;a=3;b=2;C=1;a*=SQR(b+c)/SQR(b+c);printf("%d",a);}
A.3B.18C.21D.24
四、選擇題(20題)61.
62.
63.下列程序的輸出結(jié)果是()。main{inti=1,j=2,k=3;if(i++==1&&(++j==3==||k++==3))printf("%d%d%d\n",i,j,k);}
A.123B.234C.223D.233
64.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是()。
A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.沒有任何關(guān)系
65.
下列程序的運行結(jié)果是()。
#include<stdio.h>
#defineADD(x)x+x
main
{intm=1,n=2,k=3;
intS=ADD(m+n)*k;
printf("s=%d",s);
}
A.sum=18B.sum=10C.sum=9D.sum=25
66.在深度為5的滿二叉樹中,葉子結(jié)點的個數(shù)為A.32B.31C.16D.15
67.耦合性和內(nèi)聚性是對模塊獨立性度量的兩個標準。下列敘述中正確的是()。
A.提高耦合性降低內(nèi)聚性有利于提高模塊的獨立性
B.降低耦合性提高內(nèi)聚性有利于提高模塊的獨立性
C.耦合性是指一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度
D.內(nèi)聚性是指模塊間互相連接的緊密程度
68.在以下選項中,能正確調(diào)用對象屬性的語句是()。
A.對象名(屬性名)B.對象名一>屬性名C.對象名屬性名D.對象名.屬性名
69.以下定義數(shù)組的語句錯誤的是()。
A.intnum[]={1,2,3,4,5,6};
B.intnum[][3]={{1,2},3,4,5,6};
C.intnum[2][4]={{1,2},{3,4},{5,6}};
D.intnum[][4]={1,2,3,4,5,6};
70.有以下程序intfun(intx,inty){return(x+y);}main{inta=1,b=2,C=3,sum;sum=fun((a++,b++,a+b),c++);printf("%d\n",sum);}執(zhí)行后的輸出結(jié)果是()。A.6B.7C.8D.9
71.
下列程序的運行結(jié)果為()。
#defineMAX(x,y)(x)>(y)?(x):(y)
main
{inta=2,b=3,C=1,d=3,t:
printf("%d\n",(MAX(a+h,c+d))*100):
}
A.500B.5C.4D.400
72.
73.有以下程序(說明:字母A的AscII值是65)程序運行后的輸出結(jié)果是()
A.YEB.BTC.YTD.BY
74.
75.
76.
77.
78.有以下程序段
main()
{charx=040;
printf("%d\n",x<<1);}
程序執(zhí)行后輸出的結(jié)果是
A.100B.80C.64D.32
79.
80.
有以下程序:
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
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:利用插入排序法對字符串中的字符按從大到小的順序進行排序。插入法的基本方法是:先對字符串中的頭兩個元素進行排序,然后把第3個字符插入前2個字符中,插人后前3個字符依然有序,再把第4個字符插入前3個字符中,待排序的字符串已在主函數(shù)中賦予。例如,原始字符串為“goodluck”,則排序后的字符串為“uoolkgdc”。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.請編寫函數(shù)proc(),該函數(shù)的功能是:計算n門課程的平均分,計算結(jié)果作為函數(shù)值返回。例如,有6門課程的成績是90.5,72,80,61.5,55,60,則函數(shù)的值為69.83。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.D解析:C語言中的文件是流式文件。流式文件是一種無結(jié)構(gòu)文件,即整個文件是一串字符流或二進制流。文件的存取以字符或字節(jié)為單位。
2.B指針中存放的是變量的地址,指針也可以進行增減運算,這時指針移動的最小單位是一個存儲單元,而不是一個字節(jié)。所以題中“P+6”指的是將指針向后移動了6個存儲單元,即指向uE63,存放的是b[6]的地址。
3.D本題int*p[4]的作用是聲明一個指針數(shù)組,每個元素都是int*型指針。
4.D
5.B解析:以2一路歸并排序為例進行說明。2一路歸并是指將兩個有序序列合并成一個有序序列,其基本過程為;從兩個序列中各取一個元素,進行比較,輸出較小的元素,從較小元素所在序列取下一個元素,與未輸出的那個元素比較,輸出較小者。依此類推,直到輸出序列包含了兩個初始有序序列的全部元索。對于一個初始無序的序列,可以先將其等分為兩個無序的子序列,對這兩個子序列再次二分,重復(fù)該過程,直到分出的子序列中僅包含一個元素時(一個元素自然是有序的)為止,然后在反復(fù)進行2一路歸并的過程,最后完成排序。
6.A解析:局部變量在執(zhí)行到它所在的程序塊時產(chǎn)生,執(zhí)行完時被摧毀,而靜態(tài)局部變量的生存期將一直延長到程序運行結(jié)束,故選項A正確;全局變量的只有一種靜態(tài)存儲類別,故全局變量說明為static存儲類,和沒有說明為static存儲類其生存期都是一直延長到程序運行結(jié)束,故選項B不正確:未賦初值的局部變量的初值是隨機的,故選項C不正確;形參只能是一般局部變量,不能使用任何存儲類說明符,故選項D不正確。所以,4個選項中選項A符合題意。
7.D解析:在C語言中,凡是以“#”開頭的行都稱為編譯預(yù)處理命令行,如#include、#define、#if等,每行的末尾不得用“;”結(jié)束,以區(qū)別于C語句、定義和說明語句。選項C中的宏定義為不帶參數(shù)的宏命令行,宏名之后可以有替換文本,也可以沒有。編譯預(yù)處理是在編譯程序?qū)源程序進行編譯前執(zhí)行的.當(dāng)然也在程序執(zhí)行之前執(zhí)行,因此選項D是錯誤的。
8.D\n用來存放字符量的數(shù)組稱為字符數(shù)組。字符數(shù)組也可以是二維或多維數(shù)組,對一個字符數(shù)組,如果不作初始化賦值,則必須說明數(shù)組長度,還可用printf函數(shù)和scarlf函數(shù)一次性輸出/輸入一個字符數(shù)組中的字符串,而不必使用循環(huán)語句逐個地輸入/輸出每個字符。通常用一個字符數(shù)組來存放一個字符串。所以D選項不正確。
\n
9.C
\n題中整型指針變量P存放的是變量C的地址。所以本題答案為C。
\n
10.C
11.A++a與a++的區(qū)別是前者先自加再運算,后者是先運算后自加。
12.A?A)選項中逗號表達式先計算第一表達式2*x,然后計算表達式x+=2的值,即x=x+2即4,整個逗號表達式為第二個表達式的值4,所以選A)。B)選項中首先計算逗號表達式中第一一個表達式x++,此時x為3,再執(zhí)行第二個表達式2*x=2*3=6,所以逗號表達式為第二個表達式的值6。C)選項的賦值表達式可以表示為x=x*(1+x)=2*(1+2)=6。D)選項中的表達式可以表示為x=x*(x+1)=2*3=6。
13.C解析:p=&a[3]將指針指向數(shù)組a的第4個元素,p[5]則是數(shù)組a的第9個元素,而a[8]=9,所以b=9。
14.B該程序首先給一維數(shù)組賦值,然后三次調(diào)用fun函數(shù),其中fun(a,0,3);功能是將一維數(shù)組中第1個元素和第4個元素互換,第2個元素和第3個元素互換;其中fun(a,4,9);功能是將一維數(shù)組中第5個元素和第10個元素互換,第6個和第9個元素互換,第7個元素和第8個元素互換;其中fun(a.O,9);功能是將將一維數(shù)組中第l個元素和第10個元素互換,第2個元素和第9個元素互換……依此類推。因此B選項正確。
15.D本題考查leon(tp)函數(shù),其功能是:測試所指的文件的位置指針是否已達到文件尾,如果已達到文件尾,則函數(shù)返回非0值;否則返回0,表示文件未結(jié)束。
16.A解析:函數(shù)getchar()的作用是從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個字符,且只能接受一個字符(回車符也是一個字符)。故本題中變量c1被賦予字符a,c2被賦予回車符。
17.DC語言的算術(shù)運算符是有優(yōu)先級的。圓括號可以改變算術(shù)表達式中某些算術(shù)運算符的優(yōu)先級,選項A正確;算術(shù)運算符中,乘除運算符的優(yōu)先級比加減運算符的優(yōu)先級高,C語言采用的是四則運算規(guī)則,選項B正確;算術(shù)表達式中,運算符兩側(cè)運算對象的數(shù)據(jù)類型不同時,將進行隱式類型轉(zhuǎn)換,選項C正確;C語言中基本的算術(shù)運算符除了“+”“-”“*”“/”之外,還有“%”,即求余運算符,選項D錯誤。故本題答案為D選項。
18.B所謂常量,是指在程序運行的過程中,其值不能被改變的量。在C語言中,有整型常量、實型常量、字符常量和字符串常量等類型。選項A是字符串,需要使用雙引號;選項C不是合法的常量形式;選項D為實型常量中的指數(shù)形式,但指數(shù)形式e(E)之前必須是數(shù)字,之后必須為整數(shù)。故本題答案為B選項。
19.A
20.A表達式“ch-‘0’’將數(shù)字字符轉(zhuǎn)為數(shù)字。輸出的格式為%d。while循環(huán)從‘1’~‘8’,因此輸出的結(jié)果是12345678。故本題答案為A選項。
21.88解析:第1次for循環(huán),i=0,調(diào)用函數(shù)f(2),然后將a的值加1,在f()函數(shù)中,變量c為static類型,所以c=8:第2次for循環(huán),i=1,調(diào)用函數(shù)f(3),然后將a的值加1,調(diào)用函數(shù)f(3)時,a=c++=8,所以k=8。
22.c=getchar()
23.5858解析:for循環(huán)語句中continue語句的作用是當(dāng)數(shù)組元素值小于0時,結(jié)束本次j循環(huán),break語句的作用是當(dāng)數(shù)組元素值等于0時,結(jié)束j循環(huán),所以for循環(huán)語句的功能是計算數(shù)組元素a[0][0]、a[0][1]、a[2][1]和a[3][1]之和,即s=1+2+23+32=58。
24.1818解析:設(shè)循環(huán)隊列的容量為n。若rear>front,則循環(huán)隊列中的元素個數(shù)為rear-front;若rear<front,則循環(huán)隊列中的元素個數(shù)為n+(rear-from)。題中,front=16,rear=9,即rear>front,所以,循環(huán)隊列中的元素個數(shù)為m+(rear-front)=25+(9-16)=18。
25.3232解析:while(表達式)的功能是:首先計算表達式的值,若為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢,再計算表達式的值,若仍為真,則重復(fù)執(zhí)行循環(huán)體語句,直到表達式的值為假時,結(jié)束while語句的執(zhí)行,繼續(xù)執(zhí)行while語句后面的語句:i=0時滿足循環(huán)條件,也滿足if的條件,執(zhí)行語句得i=11,a=11,第2次循環(huán)不滿足if的條件,執(zhí)行i--,i=10,執(zhí)行i+=11;a+=i后,得i=21,a=32,不滿足i<20,循環(huán)結(jié)束。
26.空間復(fù)雜度空間復(fù)雜度解析:算法執(zhí)行時所需要的存儲空間,稱為算法的空間復(fù)雜度。
27.完整性控制完整性控制
28.55解析:此程序中,for循環(huán)語句后面直接跟了一個“;”,表明循環(huán)體為空。輸出語句不在for循環(huán)體內(nèi),所以在循環(huán)執(zhí)行完畢后才輸出s的值。s、i的初值分別為。和1,判斷循環(huán)條件,表達式“1<3”成立,執(zhí)行“i++,s+=i”后,i和s的值分別為2和1,繼續(xù)判斷循環(huán)條件,表達式“2<3”成立,執(zhí)行“i++,s+=j”后,i和s的值分別為3,再次判斷循環(huán)條件,表達式“3<3”不成立,循環(huán)結(jié)束。
29.b=mj%i.nb=m\r\nj%i.\r\nn解析:函數(shù)中的變量i和j分別存放兩個形參的最小數(shù)和最大數(shù),在語句i=a和j=b執(zhí)行之前,要將a和b分別變?yōu)樽钚?shù)和最大數(shù),當(dāng)a>b時,程序使用中間變量將兩者交換,所以題中第—個空中應(yīng)當(dāng)填寫“b=m”;為求兩個整數(shù)的最大公約數(shù),程序的where循環(huán)條件必須為j整除i成立,所以題中第二個空中應(yīng)當(dāng)填寫“j%i”;程序要通過i的值返回最大公約數(shù),因此在循環(huán)中要將每次整除的公釣數(shù)賦給i,以保證最后返回的是兩個,整數(shù)的最大公約數(shù),所以第三個空中應(yīng)當(dāng)填寫“n”。
30.30x30x解析:本題的參數(shù)傳遞屬于值傳遞,所以函數(shù)內(nèi)不能改變調(diào)用函數(shù)中的數(shù)據(jù)。
31.i=10j=20i=10,j=20解析:該函數(shù)的第一個參數(shù)是格式字符串,主要由兩類字符組成,一類是非格式符要求原樣輸入,一類是格式符對應(yīng)要輸入的變量,所以本題中應(yīng)該原樣輸入i=,j=,后面分別給變量10和20,故空格處應(yīng)該填入i=10,j=20。
32.33解析:軟件系統(tǒng)結(jié)構(gòu)圖的寬度:整體控制跨度(最大模塊數(shù)的層)的表示。
33.00解析:while循環(huán)的條件為即當(dāng)*n非零時執(zhí)行循環(huán),(*n)一是先使用*n的值再對*n減1,結(jié)束while循環(huán)后*n的值為-1。++(*n)是先對*n加1再使用*n的值,-1+1=0,輸出*n的值即輸出0。
34.CC解析:本題關(guān)鍵在考生是不是了解宏的基本運用,再使用宏的時候明顯少了一個實參。在定義宏的時候變量z是用來做中間變量的,題目中缺的變量就是一個中間變量C。
35.aeiou
36.k=5k=5解析:本題主要考查了函數(shù)的遞歸調(diào)用方法。g=0或\ue008g=1\ue009或g=2是遞歸的終止條件,然后用回代的方法從一個已知值推出下一個值,直到計算出最終結(jié)果。
37.程序調(diào)試程序調(diào)試解析:程序調(diào)試的任務(wù)是診斷和改正程序中的錯誤。程序調(diào)試與軟件測試不同,軟件測試是盡可能多地發(fā)現(xiàn)軟件中的錯誤。先要發(fā)現(xiàn)軟件的錯誤,然后借助于調(diào)試工具找出軟件錯誤的具體位置。軟件測試貫穿整個軟件生命期,而調(diào)試主要在開發(fā)階段。
38.a=2b=1a=2,b=1解析:本題考查了switch結(jié)構(gòu)的內(nèi)容。C語言中,程序執(zhí)行完一個case標號的內(nèi)容后,如果沒有break語句,控制結(jié)構(gòu)會轉(zhuǎn)移到下一個case繼續(xù)執(zhí)行,因為case常量表達式只是起語句標號作用,并不是在該處進行條件判斷。本題程序在執(zhí)行完內(nèi)部switch結(jié)構(gòu)后,繼續(xù)執(zhí)行了外部switch結(jié)構(gòu)的case2分支,最后a和b的值分別為2和1。
39.22解析:考查基本表達式的計算,“%”運算符的功能是取余。題中條件s=8,則s%3=2,(s+1)%3=9%3=0,所以表達式s%3+(s+1)%3=2+0=2。
40.77解析:字符型數(shù)據(jù)可作為整型參加算術(shù)運算,其值為其對應(yīng)的ASCII碼。'H'-'A',的結(jié)果是7,加'0'后是'7'的ASCII碼,所以輸出的是字符'7'。
41.A解析:本題綜合考查字符數(shù)組的賦值和strcpy函數(shù)的用法。C語言不允許用賦值表達式對字符數(shù)組賦值,如下面的語句就是非法的:strl=“China”,如果想把“China”這5個字符放到數(shù)組strl中,除了逐個地輸入外,還能使用strcpy函數(shù),該函數(shù)的功能是將一個字符串復(fù)制到一字符數(shù)組中。例如:strcpy(strl,“China”);或strcpy(strl,str2);注意,不能企圖用以下語句來實行賦值(將str2的值傳給strl):strl=str2;不能用賦值語句將一個字符串常量或字符數(shù)組直接給一個字符數(shù)組。
strcpy函數(shù)的結(jié)構(gòu)是:strcpy(字符數(shù)組1,字符串2)
其中,需要注意的是,字符數(shù)組1的長度不應(yīng)小于字符串2的長度,“字符數(shù)組1”必須寫成數(shù)組名形式,如(strl),“字符串2”可以是字符數(shù)組名,也可以是字符串常量,不能用賦值語句將一個字符串常量或字符數(shù)組直接給一個字符數(shù)組。
42.B解析:本題考查變量的定義方法。
43.D解析:在單向鏈表中,由于每個結(jié)點需要存儲下—個結(jié)點的地址,且下—個結(jié)點的數(shù)據(jù)類型與前—個結(jié)點的數(shù)據(jù)類型完全相同,故應(yīng)為strectlink*next。
44.D解析:在switch語句中,若case語句后沒有break語句,則執(zhí)行完本層case后會繼續(xù)執(zhí)行后面case中的操作。k的初值為5,while條件成立,進入switch(5),執(zhí)行default語句,退出switch,執(zhí)行k--后得4,再進入while循環(huán),執(zhí)行switch(4),退出switch,再執(zhí)行k--后得3,繼續(xù)while循環(huán),執(zhí)行switch(3),n=n+k=3,再執(zhí)行k--后得2,進入while循環(huán),執(zhí)行case2,再執(zhí)行n=n+k=5,然后執(zhí)行k--后得1,最后一次進入while循環(huán),執(zhí)行case1,n=n+k=6,然后繼續(xù)執(zhí)行case2和case3后的語句,n=n+k=7,且執(zhí)行k--后得0,此時while條件不滿足,退出循環(huán),輸出n的值為7。
45.AA)【解析】關(guān)系的并運算是指由結(jié)構(gòu)相同的兩個關(guān)系合并,形成一個新的關(guān)系,新關(guān)系中包含兩個關(guān)系中的所有元組。
46.D解析:軟件需求規(guī)格說明書(SRS,SoftwareRequirementSpecification)是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。它有以下幾個方面的作用:
①便于用戶、開發(fā)人員相互理解和交流。
②反映用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)。
③作為確認測試和驗收的依據(jù)。
47.A解析:C語言中的函數(shù)可以進行遞歸調(diào)用,但不能在函數(shù)中定義函數(shù),即函數(shù)不能嵌套定義。函數(shù)可以沒有返回值,若有返回值,則返回值類型必須確定。
48.A解析:scanf()函數(shù)輸入格式字符“%d”用于輸入整數(shù),“%c”用來輸入字符。在輸入時,系統(tǒng)把第一個10作為整數(shù)10賦給m,把隨后的A作為字符賦值給c,后面的10作為整數(shù)賦給n,最后輸出的結(jié)果為10,A,10。
49.B
50.B解析:scanf是標準輸入函數(shù),在輸入字符串a(chǎn)aa時,實際的內(nèi)容為“aaa\\0”,“\\0”是由系統(tǒng)自動加入的:gets的功能是從終端讀入一行字符,即一直讀到換行符為止,并由系統(tǒng)自動以“/0”代替換行符。
51.D解析:本題考查的知識點是do-while循環(huán)結(jié)構(gòu)循環(huán)執(zhí)行條件的判斷.使用do-while語句必須注意以下幾點:
先執(zhí)行語句,后判斷表達式。所以,無論一開始表達式的值為“真”還是“假”,循環(huán)體中的語句至少執(zhí)行一次,這一點與while不同,
如果do-while語句循環(huán)體部分是由多個語句組成,則必須用花括號括起來,使其形成復(fù)合語句。
C語言中的do—while語句是在表達式“真”時重復(fù)執(zhí)行循環(huán)體。
在本題中,循環(huán)執(zhí)行判斷條件為while后面括號里的表達式即p!=12345&&n<3(意思為p不等于12345且n小于3)是否為“真”,由此可得循環(huán)結(jié)束的條件為:p大于12345或者p小于12345又或者n大于等于3。選項A的意思是:p的值不等于12345并且n的小于3和while后面括號里的表達式等價是循環(huán)執(zhí)行的條件而不是循環(huán)結(jié)束的條件,所以選項A不正確;選項B的意思是:p的值等于12345并且n的值大于3,不是循環(huán)結(jié)束的條件一個子集,所以選項B不正確;選項C的意思是:p的值不等于12345或者n的值小于3前一半是結(jié)束條件的子集,后一部分不是結(jié)束條件,所以選項C不正確;選項D描述的意思是:p的值等于12345或者你的大于等于3是結(jié)束條件的子集,所以選項D滿足題意。所以4個選項中D正確。
52.D解析:本題考核的知識點是while循環(huán)語句的程序分析。在主函數(shù)中首先定義了一個數(shù)組p并初始化,在while后面括號里的表達式中,i初值為0,當(dāng)p[i]為偶數(shù)時,p[i]%2等于0,根據(jù)“&&”運算符的規(guī)則,其表達式為假退出循環(huán),顯然當(dāng)i=2時,p[i]=14為偶數(shù),此時while后面括號里的毒達式的值為假,退出循環(huán),此時K=p[0]+p[1],即k=11+13。所以最后輸出k為24。所以,D選項為所選。
53.D解析:算法的時間復(fù)雜度實際上就是執(zhí)行算法程序所需要的計算工作量。為了客觀地反映算法性能,在度量算法的時間復(fù)雜度時,應(yīng)該與編寫算法程序所使用的程序設(shè)計語言、執(zhí)行算法程序時所使用的計算工具以及程序員的水平無關(guān)。
選項A錯誤,因為同一算法程序在運行速度不同的計算機上運行時,其計算時間是不同的。選項B錯誤。因為算法所編寫的程序長度往往與程序設(shè)計語言以及程序員的水平有關(guān),同一個算法,用不同的程序設(shè)計語言或者不同的程序員所編寫出的程序其長度可能會大不相同。
選項C錯誤,因為根據(jù)一個算法所編制出的程序程序中,其指令條數(shù)往往與程序設(shè)計語言以及程序員的水平有關(guān),不能用算法程序中的指令條數(shù)來度量算法的時間復(fù)雜度。
所以,本題的正確答案為D。
54.B解析:x為一個長整型的變量,而且是一個十進制的數(shù),它的輸出控制符是%1d,所以排除選項A和選項C;由于C語言中是區(qū)分大小寫的,1d中的d不能為大寫,故排除選項D。4個選項中B正確。
55.B解析:當(dāng)外層循環(huán)為i時,內(nèi)層循環(huán)i只能取j=i,所以s+=a[i][a[j][j]],其實就是s+=a[i][a[i][i]],當(dāng)i=0時,s=s+a[0][a[01[0]]=s+a[0][0]=1,當(dāng)i=1時,s=s+a[1][a[1][1]1=s+a[1][1]=1+1=2,當(dāng)i=2時,s=s+a[2][a[2][2]]=s+a[2][2]=2+2=4。
56.B解析:字符串輸入函數(shù)fgets()的調(diào)用形式為:fgets(s,n,fp)。fgets函數(shù)參數(shù)說明:“s”可以是一個字符數(shù)組名,也可以是指向字符串的指針;“n”為要讀取的最多的字符個數(shù);“fp”是指向該文件的文件型指針。fgets函數(shù)的功能是:從fp所指向的文件中讀取長度不超過n-1個字符的字符串,并將該字符串放到字符數(shù)組s中;讀入字符串后會自動在字符串末尾加入“'\\0'”結(jié)束符,表示字符串結(jié)束。
57.D解析:本題中是一個含有兩個結(jié)點的循環(huán)鏈表。
C語言中結(jié)構(gòu)體的定義為:
struct結(jié)構(gòu)題類型名
{
成員項表;
};
58.C解析:對二叉樹的前序遍歷是指先訪問根結(jié)點,然后訪問左子樹,最后訪問右子樹,并且,在訪問左、右子樹時,先訪問根結(jié)點,再依次訪問其左、右子樹。
59.A本題主要考查標識符的定義。對標識符的定義是考試中??嫉膬?nèi)容之一。標識符主要由數(shù)字、下畫線和字母組成,其中數(shù)字不能放在首位,另外,用戶自定義標識符時,不能將標識符定義為C語言中已定義的關(guān)鍵字,如int、while等。
根據(jù)上面對標識符的分析,我們不難看出本題的正確答案是A。在選項B中,3_xy以數(shù)字開頭,不符合標識符定義的規(guī)定;在選項C中,int是C語言系統(tǒng)中已經(jīng)定義了的關(guān)鍵字;在選項D中,LINE-3使用的數(shù)字、下畫線和字母以外的字符,因此不正確。
60.C解析:以b+c代替參數(shù)
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025養(yǎng)生館合伙人養(yǎng)生健康大數(shù)據(jù)分析服務(wù)合同3篇
- 二零二五年度全新私人合同:私人飛機租賃及飛行員培訓(xùn)服務(wù)協(xié)議3篇
- 二零二五農(nóng)村土地征收與鄉(xiāng)村旅游開發(fā)合作合同
- 2025年度年度生態(tài)魚塘經(jīng)營權(quán)轉(zhuǎn)讓合同
- 2025年度海洋資源開發(fā)勞務(wù)輸出及海洋工程服務(wù)合同3篇
- 2025年度金融機構(gòu)與高新技術(shù)企業(yè)借款合同3篇
- 2025年度演藝經(jīng)紀合同標的00萬元人民幣3篇
- 二零二五年度國有土地租賃協(xié)議合同(文化教育產(chǎn)業(yè)園區(qū))2篇
- 2024年中國混合染料市場調(diào)查研究報告
- 2025年度綠色建筑項目融資合同樣本3篇
- 公交車站臺服務(wù)規(guī)范與安全意識
- 2024電商消費趨勢年度報告-flywheel飛未-202412
- 慢阻肺護理個案病例范文
- 《農(nóng)機安全》課件
- 公共廁所清潔保養(yǎng)協(xié)議
- 中國普通食物營養(yǎng)成分表(修正版)
- 駕駛證學(xué)法減分(學(xué)法免分)試題和答案(50題完整版)1650
- 期末測試卷(試題)-2024-2025學(xué)年人教PEP版(2024)英語三年級上冊
- 【人民日報】72則金句期末評語模板-每頁4張
- OQC崗位職責(zé)(完整版)
- 電氣控制與PLC復(fù)習(xí)課件
評論
0/150
提交評論