版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2021-2022年安徽省宣城市全國計算機等級考試C語言程序設計真題(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列數據結構中,能用二分法進行查找的是()。
A.順序存儲的有序線性表B.結性鏈表C.二叉鏈表D.有序線性鏈表
2.有說明語句“inta,b;”,如果輸入111222333,使得a的值為111,b的值為333,則以下正確的語句是()。A.scanf("%3d%*3d%3d",&a,&b);
B.scanf("%*3d%3d%3d",&a,&b);
C.scanf("%3d%3d%*3d",&a,&b);
D.scanf("%3d%*2d%3d",&a,&b);
3.設x=011050,則x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
4.線性表(a1,a2,?,an)以鏈式方式存儲,訪問第i位置元素的時間復雜度為()。
A.O(0)B.O(1)C.O(n)D.O(n2)
5.以下與函數fseek(fp,0L,SEEK_SET)有相同作用的是
A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)
6.對n個元素的有序表A[1..n]進行順序查找,其成功查找的平均查找長度(即在查找表中找到指定關鍵碼的元素時,所進行比較的表中元素個數的期望值)為()
A.nB.(n+1)/2C.log2nD.n^2
7.在下面的二維數組定義中,正確的是()。
A.inta[5][];
B.inta[][5];
C.inta[][3]={{1,3,5},{2}};
D.inta[](10);
8.下列關于線性表的敘述中,不正確的是()
A.線性表可以是空表
B.線性表是一種線性結構
C.線性表的所有結點有且僅有一個前件和后件
D.線性表是由n個元素組成的一個有限序列
9.對于線性表(7,34,55,25,64,46,20,10)進行散列存儲時,若選用H(K)=K%9作為散列函數,則散列地址為1的元素有()個。
A.1B.2C.3D.4
10.排序的算法很多,若排序的穩(wěn)定性和不穩(wěn)定性分類,則()是不穩(wěn)定排序。
A.冒泡排序B.歸并排序C.直接插入排序D.希爾排序
11.考慮下圖中的程序段,①號語句的輸出結果是()。A.A.'a'B.'t'C.'c'D.'k'
12.
13.有以下程序:
程序運行后的輸出結果是()。
A.4B.34C.31D.32
14.有以下程序:#include<stdio.h>main(){charc1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);}當運行時輸入:a<回車>后,以下敘述正確的是()。
A.變量c1被賦予字符a,c2被賦予回車符
B.程序將等待用戶輸入第2個字符
C.變量c1被賦予字符a,c2中仍是原有字符2
D.變量c1被賦予字符a,c2中將無確定值
15.
16.數組A中,每個元素的長度為3個字節(jié),行下標i從1到8,列下標j從1到10,從首地址SA開始連續(xù)存放的存儲器內,該數組按行存放,元素A[8][5]的起始地址為()。
A.SA+141B.SA+144C.SA+222D.SA+225
17.對于下述程序,在方式串分別采用“wt”和“wb”運行時,兩次生成的文件TEST的長度是#include<stdio.h>voidmain(){FILE*fp=fopen("TEST",);fputc('A',fp);fputc('\n',fp);fputc('B',fp);fputc('\n',fp);fputc('C',fp);fclose(fp);}
A.7字節(jié)、7字節(jié)B.7字節(jié)、5字節(jié)C.5字節(jié)、7字節(jié)D.5字節(jié)、5字節(jié)
18.以下敘述中正確的是()。A.A.break語句只能用在循環(huán)體內和switch’語句體內
B.continue語句的作用是:使程序的執(zhí)行流程跳出包含它的所有循環(huán)
C.在循環(huán)體內使用break語句和continue語句的作用相同
D.break語句只能用于switch語句體中
19.
20.若有說明語句:inta,b,c,*d=&c;,則能正確從鍵盤讀入3個整數分別賦給變量a、b、c的語句是______。
A.scanf("%d%d%d",&a,&b,d);
B.scanf("%d%d%d",&a,&b,&d);
C.scanf("%d%d%d",a,b,d);
D.scanf("%d%d%d",a,b,*d);
二、2.填空題(20題)21.有以下程序段,且變量已正確定義和賦值
for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));
printf("s=%f\n\n",s);
請?zhí)羁?使下面程序段的功能與之完全相同
s=1.0;k=1;
while(【】){s=s+1.0/(k*(k+1));【】;}
printf("s=%f\n\n",s);
22.【】是從二維表列的方向進行的運算。
23.在程序設計階段應該采取______和逐步求精的方法,把一個模塊的功能逐步分解,細化為一系列具體的步驟,繼而用某種程序設計語言寫成程序。
24.下面函數的功能是:找出一維數組元素中最大的值和它所在的下標,最大的值和它所在的下標通過形參傳回。數組元素中的值已在主函數中賦予。主函數中x是數組名,n是x中的數據個數,max存放最大值,index存放最大值所在元素的下標。請?zhí)羁铡?/p>
#include<stdlib.h>
#include<stdio.h>
voidfun(inta[],intn,int*max,int*d)
{intI;
*max=a[0];
*d=0;
for(I=0;【】;I++)
if(*max<【】)
{*max=a[I];*d=i;}}
main()
{inti,x[20],max,index,n=10;
randomize();
for(i=0;i<n;i++)
{x[i]=rand()%50;printf("%4d",x[i]);}
printf("\n");
fun(x,n,&max,&index);
printf("Max=%5d,Index=%4d\n",max,index);}
25.下列表達式用于判斷y是否為閏年。閏年的判斷條件是:年號能被4整除但不能被100整除或年號能被400整除,請?zhí)羁誣_____。
26.【】是數據庫設計的核心。
27.以下程序的輸出結果是()。#include<stdio.h>main(){inti=10,j=0;do{j=j+i;i--;}while(i>5);printf("%d\n",j);}
28.有以下程序,若運行時從鍵盤輸入:18,11<回車>,則程序的輸出結果是【】。
main()
{inta,b;
printf("Entera,b:");scanf("%d,%d",&a,&b);
while(a!=b)
{while(a>b)a-=b;
while(b>a)b-=a;
}
printf("%3d%3d\n",a,b);
}
29.軟件維護活動包括以下幾類:改正性維護、適應性維護、【】維護和預防性維護。
30.瀑布模型將軟件生存周期劃分為【】、開發(fā)和運行3個階段。
31.下列程序的運行結果是______。
#defineP(A)printf("%d",A)
main()
{intj,a[]={1,2,3,4,5,6,7},i=5;
for(j=3;j>1;j--)
{switch(j)
{case1:
case2:P(a[i++]);break;
case3:P(a[--i]);
}
}
}
32.以下程序的功能是:刪去一維數組中所有相同的數,使之只剩一個。數組中的數已按由小到大的順序排列,函數返回刪除后數組中數據的個數。
例如,若一維數組中的數據是:
2223445666677899101010
刪除后,數組中的內容應該是:
2345678910。
請?zhí)羁铡?/p>
#include<stdio.h>
#defineN80
infun(inta[],intn)
{inti,j=1;
for(i=1;i<n;i++)
if(a[j-1]【】a[i])
a[j++]=a[i];
【】;
}
main()
{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;
printf("Theoriginaldata:\n");
for(i=0;i<n;i++)printf("%3d",a[i]);
n=fun(a,n);
printf("\nThedataafterdeleted:\n");
for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\n");
}
33.在面向對象方法中,類之間共享屬性和操作的機制稱為______。
34.下列循環(huán)的循環(huán)次數是______。
intk=2;
while(k=0)
printf["%d",k);
k--;
printf("\n");
35.下面程序的功能是輸出數組中最大的數,由a指針指向該元素。請?zhí)羁铡?/p>
main()
{ints[]={6,7,2,13,9,1,12,10,5,8,4,3,11),*a,*b;
for(【】)
if(*a<*b)a=b;
printf("%d",*a);
}
36.若x和a均是int型變量,則計算完x=(a=4,6*2)后的x值為______。
37.以下程序的功能是將字符串s中的數字字符放人d數組中,最后輸出d中的字符串。例如,輸入字符串abc123edf456gh,執(zhí)行程序后輸出123456。請?zhí)羁铡?/p>
#include<stdio.h>
#include<ctype.h>
main()
{chars[80],d[80];inti,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(【】){d[j]=s[i];j++;)
d[j]='\0';
puts(D);
}
38.若有定義intm=5,y=2,則執(zhí)行表達式y(tǒng)+=y-=m*=y后,y的值為【】。
39.以下函數用來在w數組中插入x。n所指向的存儲單元中存放w數組中字符個數。數組w中的字符已按從小到大的順序排列,插入后數組w中的字符仍有序。請?zhí)羁铡?/p>
voidfun(char*w,charx,int*n)
{inti,p;
p=0;
w[*n]=x;
while(x>w[p])p++;
for(i=*n;i>p;i--)w[i]=【】;
w[p]=x;
++*n;}
40.診斷和改正程序中錯誤的工作通常稱為【】。
三、1.選擇題(20題)41.有以下程序:#include<stdio.h>#include<string.h>main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}程序運行后的輸出結果是()。
A.22B.76C.72D.62
42.軟件是指()。A.程序B.程序和文檔C.算法加數據結構D.程序、數據與相關文檔的完整集合
43.下列關于隊列的敘述中正確的是______。A.在隊列中只能插入數據B.在隊列中只能刪除數據C.隊列是先進先出的線性表D.隊列是先進后出的線性表
44.下列程序執(zhí)行后的輸出結果是()#defineMA(x)x*(x-1)main(){inta=1,b=2;printf("%d\n",MA(1+a+B));}
A.5B.6C.7D.8
45.有以下程序:#include<stdio.h>main(){chark;inti;for(i=1;i<3;i++){scanf("%c",&k);switch(k){case'0':printf("another\n");case'1':printf("number\n");}{}程序運行時,從鍵盤輸入:01<回車>,程序執(zhí)行后的輸出結果是()。
A.anothernumber
B.anothernumberanother
C.anothernumber
D.numbernumber
46.以下程序有錯,錯誤原因是()。main(){int*p,i;char*q,ch;p=&i;q=&ch;*p=40;*p=*q;┇}
A.p和q的類型不一致,不能執(zhí)行*p=*q;語句
B.*p中存放的是地址值,因此不能執(zhí)行*p=40;語句
C.q沒有指向具體的存儲單元,所以*q沒有實際意義
D.q雖然指向了具體的存儲單元,但該單元中沒有確定的值,所以執(zhí)行語句*p=*q;沒有意義,可能會影響后面語句的執(zhí)行結果
47.以下程序的輸出結果是______。#include<stdio.h>#defineSQR(x)x*xmain(){inta,k=3;a=++SQR(k+1);printf((“%d\n”,a);}A.8B.9C.17D.20
48.表達式'8'-'2'的值是()。
A.整數6B.字符6C.表達式不合法D.字符8
49.以下語句中存在語法錯誤的是A.charss[6][20];ss[1]="right?";
B.charss[][20]={"right?"};
C.char*ss[6];ss[1]="right?";
D.char*ss[]={"right?"};
50.若已定義x和y為double類型,則表達式:x=1,y=x+3/2的值是()A.1B.2C.2.0D.2.5
51.在數據庫技術中,面向對象數據模型是一種______。
A.概念模型B.結構模型C.物理模型D.形象棋型
52.若fp是指向某文件的指針,且尚未讀到文件末尾,則函數feof(fp)的返回值是()。
A.EOFB.-1C.非零值D.0
53.C語言中,能識別處理的文件為
A.文本文件和數據塊文件B.文本文件和二進制文件C.流文件和文本文件D.數據文件和二進制文件
54.已有定義:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判斷c中的字符是否為大寫字母的表達式是
A.isupper?
B.′A′<=c<=′Z′
C.′A′<=c&&c<=′Z′
D.c<=(′z′-32)&&(′a′-32)<=c
55.下列敘述中錯誤的是()。
A.線性表是由n個元素組成的一個有限序列
B.線性表是一種線性結構
C.線性表的所有結點有且僅有一個前件和后件
D.線性表可以是空表
56.以下程序的運行結果是_______。#include"stdio.h"main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12};int*p=a+5,*q=NULL;*q=*(p+5);printf("%d%d\n",*p,*q);}
A.運行后報錯B.66C.612D.55
57.在ASCII代碼表中每一個大寫字母比它相應的小寫字母的ASCII碼()。
A.小32B.小64C.大32D.大1
58.請讀程序:#include<stdio.h>main(){inta;floatb,c;scanf("%2d%3f%4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f\n",a,b,c);}若運行時從鍵盤上輸入9876543210,則上面程序的輸出結果是______。
A.a=98,b=765,c=4321
B.a=10,b=432,c=8765
C.a=98,b=765.000000,c=4321.000000
D.a=98,b=765.0,c=4321.0
59.下列程序的執(zhí)行結果是______。main(){intx=2,y=2,z=0;if(z<0)if(y>o)x=4;elseX=5;printf("%d\t",x);if(z=y>0)x=7;elseif(y=0)x=3;elseX=6;printf("%d\t",x);printf("%d\t",z);}
A.271B.432C.570D.250
60.以下說法不正確的是
A.C程序中必須有一個main()函數,C程序是從main()函數的第1條語句開始執(zhí)行的。
B.非主函數都是在執(zhí)行主函數時,通過函數調用或嵌套調用而得以執(zhí)行的。
C.C程序中的main()函數必須放在程序的開始位置。
D.C程序中的main()函數位置可以任意指定。
四、選擇題(20題)61.若有以下定義和語句:
chars[10]="abcd!",*s2="\nl23\\";
Drintf("%d%d\n",strlen(sl),strlen(s2));
則輸出結果是()。
A.55B.105C.107D.58
62.有以下程序:
程序運行后的輸出結果是()。
A.3B.2C.1D.0
63.已知大寫:字母A的ASCIl碼是65,小寫字母a的ASCIl碼是97。以下不能將變量c中的大寫字母轉換為對應小寫字母的語句是()。
64.閱讀以下程序該程序在編譯時產生錯誤,其出錯原因是()。
A.定義語句出錯,case是關鍵字,不能用作用戶自定義標識符
B.定義語句出錯,printF不能用作用戶自定義標識符
C.定義語句無錯,scanf不能作為輸入函數使用
D.定義語句無錯,scanf不能輸出case的值
65.有以下程序:
程序運行后的輸出結果是()。
A.0304B.2050C.3344D.3040
66.對于一個正常運行的C程序,以下敘述中正確的是()。A.程序的執(zhí)行總是從main函數開始
B.程序的執(zhí)行總是從程序的第一個函數開始,在main函數結束
C.程序的執(zhí)行總是從main函數開始,在程序的最后一個函數中結束
D.程序的執(zhí)行總是從程序的第一個函數開始,在程序的最后一個函數中結束
67.若有定義:“doublea=22;inti=0,k=18;”,則不符合C語言規(guī)定的賦值語句是()。
A.a=a++,i++;
B.i=(a+k)<=(i+k);
C.i=a%11;
D.i=!a;
68.(37)下面不屬于軟件設計原則的是()
A.抽象
B.模塊化
C.自底向上
D.信息隱蔽
69.
70.
71.有以下程序:
程序輸出結果是()。
A.0,1,2,0B.0,0,0,3C.1,1,2,0D.編譯有錯
72.
73.(45)信息隱蔽的概念與下述哪一種概念直接相關()
A.軟件結構定義
B.模塊獨立性
C.模塊類型劃分
D.模擬耦合度
74.有如下程序段
#include"stdio.h"
#include"string.h"
#defineN10
#defineM10
char*find(char(*a)[M],intn)
{char*q;inti;
q=a[0];
for(i=0;i<n;i++)
if(strcmp(a[i],q)<0)q=a[i];
returnq;}
main()
{chars[N][M]={"tomeetme","you","and","he","china"};
char*p;
intn=5;
p=find(s,n);
puts(p);}
則執(zhí)行后輸出的結果為A.A.heB.andC.youD.tomeetme
75.已知:intx,y;doublez;則以下語句中錯誤的函數調用是()。A.A.scanf("%d,%1x,%1e",&x,&y,&z);
B.scanf("%1d*%d&1f",&x,&y,&z);
C.scanf("%x%*d%o",&x,&y);
D.scanf("%x%o%6.2f",&x,&y,&z);
76.若有以下語句:typedefstructS{int9;charh;}T;以下敘述中正確的是()。
A.可用s定義結構體變量B.可用T定義結構體變量C.S是struct類型的變量D.T是structS類型的變量
77.以下能正確定義一維數組的選項是()。
A.inta[5]=(0,1,2,3,4,5);
B.chara[]={0,1,2,3,4,5);
C.chara={'A','B','C'};
D.inta[5]="0123";
78.
79.已知函數的調用形式:fread(buf,size,count,fp),參數buf的含義是
A.一個整型變量,代表要讀入的數據項總數
B.一個文件指針,指向要讀的文件
C.一個指針,指向要讀入數據的存放地址
D.一個存儲區(qū),存放要讀的數據項
80.有以下程序程序的運行結果是()。
A.1B.41C.2D.331
五、程序改錯題(1題)81.下列給定程序中,函數proc()的功能是:給一維數組arr輸人任意4個整數,并按如下的規(guī)律輸出。例如,若輸入2345,則程序運行后輸出以下矩陣:請修改程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。試題程序:
六、程序設計題(1題)82.請編寫函數proc(),它的功能是計算:s=(1n(1)4-1n(2)+In(3)4-…+1n(m))0.5在C語言中可調用log(n)函數求1n(n)。例如,若n1的值為30,則proc()函數值為8.640500。注意:部分源程序給出如下。請勿改動main()函數和其他函數中的任何內容,僅在函數proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.A\nA?!窘馕觥慷址ú檎抑贿m用于順序存儲的有序線性表,對于順序存儲的非有序線性表和線性鏈表,都只能采用順序查找。
\n
2.A根據題意,要使a的值為111,b的值為333,必須在讀入時指定a的讀入寬度為3,b的讀入寬度為3,且a和b的控制字符之間必須額外增加%*控制符,用于跳過中間的3位輸入數字,選項A正確。本題答案為A選項。
3.A本題考查按位與運算,按位與就是相同為1,不同為0,把x=011050化成二進制為0001001000101000,把01252化成二進制為0000001010101010,兩者相與得0000001000101000。
4.C
5.D解析:本題考查的是文件操作函數.題目中fseek(fp,0L,SEEK_SET)的作用將文件指針定位到文件開始。feof(fp)的作用是判斷文件指針是否已到文件結尾,因此選項A不對。ftell(fp)的作用是獲取當前文件指針的位置,因此選項B不對。fgetc(fp)的作用是從文件中讀取一個字節(jié),因此選項C不對。rewind(中)的作用是將文件指針重定位到文件開頭,所以應該選擇D。
6.B
7.C
8.CC)【解析】線性表是一種線性結構,由n(n≥O)個元素組成,所以線性表可以是空表。但是性表中,第一個結點沒有前件,最后一個結點沒有后件,其他結點有且只有一個前件和后件,所以選項C)是錯誤的。
9.D
10.D
11.D
12.A
13.C本題重點考察二維數組名作為實參進行參數傳遞,在主函數中調用了fun函數,實參為二維數組名a和兩個整數4.0,這樣對應定義fun函數首部有三種形式,這里采用了第一種形式——行指針,這樣在fun函數對s[i][j]進行操作實際上就是對主函數中的a[i][j]進行操作,再分析fun函數的作用便可知,是求二維數組第0列中最大的那個元素。因此C選項正確。
14.A解析:本題考查的是getchar()函數。getchar()函數執(zhí)行時將從鍵盤緩沖區(qū)中讀取用戶的輸入,而不管輸入的是否可打印字符,所以當輸入a<回車>后,鍵盤緩沖區(qū)被輸入的實際上是兩個字符:'a'和'\\n'。故選項A的說法是正確的。
15.A
16.C
17.B解析:以“wt”方式寫入的是字符文件,轉義字符\'\\n\'被看作兩個字符來處理。而'wb'方式寫入的是二進制文件,轉義字符\'\\n\'是一個字符。故正確答案為選項B)。
18.A本題主要考查的知識點是:break和IContinue語句。break語句可以用于swhitCh或循環(huán)體內,作用是跳/出switCh或循環(huán)體。Continue語句只能用于循環(huán)體內,作用是結束當前循環(huán),進入下次循環(huán)。故本題中只有選項A)是正確的。
19.B
20.A解析:選項B中d已經為地址,不應在加上求地址符號“&”,故選項B不正確;選項C中,a和b都為變量不是地址,應該在a和b之前加上求地址符號“&”,故選項C不正確:選項D中指針d所指向的存儲空間的位置為變量c的值,不為地址,故選項D不正確,所以,4個選項中A為所選。
21.k<=nk++k<=n,k++解析:本題要求將一個for循環(huán)改成while循環(huán)。首先要保證循環(huán)條件相同,在for循環(huán)中,每次執(zhí)行循環(huán)之后,循環(huán)控制變量k都會加1,而while循環(huán)則沒有,故需在循環(huán)體中增加改變k數值的語句'k++;'\ue009。
22.投影投影解析:在關系模型的數據語言中,一般除了運用常規(guī)的集合運算,(并、交,差、笛卡爾積等)外,還定義了一些專門的關系運算,如投影、選擇、連接等。投影是從二維表的列方向上進行的運算。
23.自頂向下自頂向下解析:在程序設計時,應先考慮總體,后考慮細節(jié),逐步使問題具體化,對復雜的問題,應該設計一些子目標作為過渡,上述方法概括為:自頂向下,逐步細化。
24.I<na[I]I<n,a[I]解析:該程序直接使用形參max和d,由于它們都是指針變量,所以要引用它們所指向的變量時,要對它們進行指針運算,即*號運算。
25.(y%4==0)&&(y%100!=0)||(y%400==0)(y%4==0)&&(y%100!=0)||(y%400==0)解析:考查邏輯表達。年號能被4整除(y%4==0)但不能被100整除(y%100!=0),兩者是與的關系,年號能被400整除即y%400==0,與前兩項是或的關系。
26.數據模型數據模型
27.4040解析:分析程序,初始時i=10,j=0,這時do循環(huán)中的“i=j+i”
28.1111解析:首先,程序通過scanf()函數將18和11分別讀入到變量a和b中。然后,因為a!=b為真,進入外層while循環(huán)。此時a>b為真,執(zhí)行a-=b;,a的值變?yōu)?8-11=7:接下來b>a也為真,執(zhí)行b-=a;,b的值變?yōu)?1-7=4。此時a!=b還是為真,第2次進入外層循環(huán)。a>b為真,執(zhí)行a-=b;,a的值變?yōu)?-4=3。b>a為真,執(zhí)行b-=a;,b的值變?yōu)?-3=1接下來a!=b為真第3次進入外層循環(huán)。a>b為真,執(zhí)行a-=b,a的值變?yōu)?-1=2。b>a為假,不執(zhí)行b-=a;;然后第4次進入外層循環(huán),a>b為真,執(zhí)行a-=b,a的值變?yōu)?-1=1。b>a為假,不執(zhí)行b-=a;此時a和b均為1了,a!=b條件為假,外層循環(huán)結束。故本題輸出的結果是11。
29.完善性軟件維護活動包括以下幾類:改正性維護,適應性維護、完善性維護和預防性維護,完善性維護是指為了滿足用戶對軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴充軟件功能、增強軟件性能、改進加工效率、提高軟件的可維護性。
30.計劃計劃解析:瀑布模型是B.W.Boehm于1976年提出的。它將軟件生存周期劃分為計劃、開發(fā)、運行3個時期,每個時期又分為若干個階段。
31.5555解析:分析程序執(zhí)行過程,第一次循環(huán)時,i=3,i=5,因為switch(3),所以執(zhí)行case3,調用P(a[--i])=P(a[4])=P(5),輸出5:第二次循環(huán)時,j=2,i=4,因為switch(2),所以執(zhí)行case2,調用P(a[i++]):P(a[4])=P(5),輸出5,之后i自加等于5。
32.!=returnj!=\r\nreturnj解析:本題程序的流程是:讓i,j都從1開始其中j用于控制刪除后剩下的數中的下標,i用于搜索原數組中的元素。j始終是新數組已有元素中最后一個元素的下一個元素的下標,所以if()中的條件是a[j-1)!=a[i],其中a[j-1]就是新數組中的最后一個元素,若條件成立則表示出現了不同的值,所以a[i]要留下到新數組中。注本題中i,j的初值都要從1開始。該算法只能用于數組已排序的題目中。
33.繼承繼承
34.00解析:解答本題需要注意表達式“k=0”,它是賦值表達式而不是關系表達式,不論k為何值,表達式k=0總會使k為0,所以不能進入循環(huán)。
35.a=sb=s+1;b-s<sizeof(s)/sizeof(s[0]);b++a=s,b=s+1;b-s<sizeof(s)/sizeof(s[0]);b++解析:題目要求輸出數組中最大的數,所以要遍歷整個數組,而指針a用來指向最大數,所以循環(huán)變量只有使用指針b。for初始化時,應該先讓a指向第1個數,然后讓b指向第2個數,故循環(huán)初始化語句應該為a=s,b=s+1或其他等價表達式。因為要使b遍歷整個數組,故循環(huán)條件應該為b-s<sizeof(s)/sizeof(s[0])或其他等價表達式。最后每次循環(huán)應該讓b往后移動一位,故for的第3條語句應該是++b、b++或其他等價形勢。所以本題應填a=s,b=s+1;b-s<sizeof(s)/sizeof(s[0]);b++或其他等價語句。
36.1212解析:x=(表達式1,表達式2,…)的形式,結果為最后一個表達式的值:x=(a=4,6*2)=2*6=12。
37.s[i]>='0'&&s[i]<='9'或s[i]>=48&&s[i]<=57s[i]>='0'&&s[i]<='9'或s[i]>=48&&s[i]<=57解析:根據題意,if語句的條件應當是判斷數組元素s[i]是否為數字,故正確答案為:s[i]>='0'&&s[i]<='9'或s[i]>=48&&s[i]<=57,其中48是字符0的ASCII碼值,57是字符9的ASCII碼值。
38.-16-16解析:將賦值運算符右側的“表達式”的值賦給左側的變量,并且賦值運算符按照“自右而左”的結合順序,本題表達式應先算m的值為10,再運算y的值為8,最后計算y=y+(-8)=-8+(-8)=-16。
39.w[i-1]w[i-1]解析:在用數組實現的有序序列中插入內容,必須先尋找插入位置。插入位置找到后,需將插入位置之后的元素向后移動一個位置,留出插入點。最后,將元素插入,并增加序列的元素個數。函數為了簡化尋找插入位置循環(huán)的循環(huán)條件,預先在序列的最后置入插入值。插入位置之后的元素向后移動一個位置必須從最后一個元素開始往前逆序移動,是將前一個元素向后移,所以在空框處應填入w[i-1]。
40.程序調試程序調試解析:程序調試的任務是診斷和改正程序中的錯誤。程序調試與軟件測試不同,軟件測試是盡可能多地發(fā)現軟件中的錯誤。先要發(fā)現軟件的錯誤,然后借助于調試工具找出軟件錯誤的具體位置。軟件測試貫穿整個軟件生命期,而調試主要在開發(fā)階段。
41.C解析:C語言.中以,'\\0'作為字符串的結束符,且strlen函數計算的是,'\\0',字符前的所有字符的個數,故本題中strlen(a)應為2。數組定義以后系統(tǒng)就為其分配相應大小的內存空間,而不論其中有沒有內容。sizeof運算符是計算變量或數組所分配到的內存空間的大小,所以本題的sizeof(a)為7。
42.D軟件是計算機系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數據及相關文檔的完整集合。其中,程序是軟件開發(fā)人員根據用戶需求開發(fā)的、用程序設計語言描述的、適合計算機執(zhí)行的指令(語句)序列;數據是使程序能正常操縱信息的數據結構;文檔是與程序開發(fā)、維護和使用有關的圖文資料。因此本題的正確答案是D。
43.C隊列是指允許在一端進行插入、而在另一端進行刪除的線性表,選項A和選項B錯誤。允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。在隊列中,最先插入的元素將最先能夠被刪除,反之,最后插入的元素將最后才能被刪除。所以,隊列又稱為“先進先出”或“后進后出”的線性表,它體現了“先來先服務”的原則,選項C正確,選項D錯誤。
44.D解析:本題中的宏調用MA(1+a+b)展開后的結果是1+a+b*(1+a+b-1)=1+1+2*(1+1+2-1)=2+2*3=8。所以輸出的結果是8,選項D正確。
45.C解析:本題中沒有使用break終止switch語句的執(zhí)行,當k為'0'時,執(zhí)行完case'0'后的輸出后將繼續(xù)執(zhí)行case'1'后的輸出;當k為'1'時,執(zhí)行case'1'后的輸出。
46.D解析:在該程序中,首先聲明整型指針變量p和整型變量i,字符型指針變量q和字符型變量ch,將i的地址賦給指針變量p,將ch的地址賦給指針變量q,然后將40賦給*p。此時,雖然q已經指向了一個具體的存儲單元,但ch的值不確定,即*q沒有確定的值,所以不能執(zhí)行*p=*q;語句。
47.B
48.A解析:在C語言中,雖然字符都是變?yōu)槠鋵腁SCII碼值來參與算術運算的,但字符間的相對位置關系還是不變的,字符8和字符2的ASCII碼值相差仍是6。
49.A數組定義后,不可以對數組整體賦值,s是一維數組,因ss[1]是一維字符數組,即字符串,字符串賦值可以使用strcpy(ss[1],'right\'\');這樣的形式,而選項A)中對二維數組中的第“1維(相當于一個一維數組)賦值,是不可以的。選項B)和D)是定義時對數組初始化,這是可以的。選項C)中,將字符串在內存中的首地址賦給指針數組的一個元素,這是可以的。
50.C解析:這是一個逗號表達式,它的值應為表達式y(tǒng)=x+3/2的值,而前一個表達式已給x賦值1,在沒有進行類型轉換的情況下,3/2的值為1,所以x+3/2的值應為2.0。
51.B解析:根據數據模型的應用的不同目的,模型分為概念模型和結構模型。概念模型是按用戶的觀點對數據和信息建模。結構模型是按計算機系統(tǒng)觀點對數據建模。數據模型按數據結構分為層次模型、網狀模型、關系模型和面向對象數據模型。
52.D解析:文件狀態(tài)檢測函數feof(fp)的功能是:測試所指的文件的位置指針是否已達到文件尾,如果已到達文件尾,則函數返回非。值;否則返回0,表示文件尚未結束。
53.B解析:在計算機中,對于輸入輸出均采用數據流的形式。文件按照存取方式分為順序存取文件和隨機存取文件。按照存儲形式分為二進制文件和文本文件。文本文件存儲的是一個ASCII碼,文件的內容可以直接進行輸入輸出。二進制文件直接將字符存儲,不能將二進制文件的內容直接輸出到屏幕上。所以,C語言所能夠處理文件是按照存放形式分為文本文件和二進制文件。
54.B解析:在本題中,選項B)實際是先計算關系表達式'\'A\'<=c'的值是0還是1,再比較該值與字符\'Z\'之間的大小關系,顯然不能實現題目所要求的功能,而選項A)、C)、D)都可以。
55.CC.【解析】線性表是一種線性結構,由n(n≥0)個元素組成,所以線性表可以是空表。但是在線性表中,第一個結點沒有前件,最后一個結點沒有后件,其他結點有且只有一個前件和后件,所以選項C.是錯誤的。
56.A解析:題目中沒有給q分配存儲單元,只是簡單的給它賦了一個值,所以程序的運行結果是611NULLpointerassignment,也就是運行后報錯。
57.A解析:本題考查大小寫字母的ASCII碼值的關系。大寫字母比它相應的小寫字母的ASCII碼小32。
58.C解析:scanf()把用戶從鍵盤錄入的數字的第1、2位存入整型變量a;把第3、4、5位存入單精度實型變量b,把第6、7、8、9位存入單精度實型變量c,用戶錄入的第10位被scanf()遺棄。這時變量a、b、c的值分別為:98、765.000000、4321.000000。
59.A解析:本題考查if語句的嵌套,第一個嵌套語句,else看上去似乎和第一個if配對,實際上是和第二個if配對:第二個嵌套語句中的兩個條件表達式應該注意,第一個條件表達式是將y>0的邏輯值賦給變量z,第二個條件表達式是將0賦給變量y,不是邏輯等于運算符“==”。
60.C解析:本題考核的知識點是main()函數的作用,以及main()函數在程序中出現的位置。一個完整的C語言程序有且僅有一個主函數(main()函數)。程序總從main()函數的第一條語句開始執(zhí)行,到main()函數的最后一條語句結束,其他函數都是在執(zhí)行main()函數時,通過函數調用或嵌套調用而得以執(zhí)行的。C語言規(guī)定,main()函數在程序中的位置是任意的,故選項c不正確。所以,4個選項中C符合題意。
61.A\n\\n和\\\\分別為轉義字符,各占據一個字符的位置。
\n
62.D在ifelse語句中else總是與離它最近的f配對。本題目中x為l所以!X為0,所以執(zhí)行elseif語句中的內容,判斷(x==O)是否成立,因為x為1所以條件不成立,聽以elseif內部的if…else語句不再執(zhí)行,所以Y的值還是初蛤值0。
63.A大寫字母轉換為對應小寫字母,即加上32,A)選項不是累加32,所以選擇A)
64.A用戶自定義標
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貴州城市職業(yè)學院《數字圖像處理及應用》2023-2024學年第一學期期末試卷
- 貴陽職業(yè)技術學院《中學英語教學研究方法》2023-2024學年第一學期期末試卷
- 2025廣東省安全員《B證》考試題庫
- 2025年重慶市安全員-A證考試題庫附答案
- 廣州珠江職業(yè)技術學院《惡意代碼調查技術》2023-2024學年第一學期期末試卷
- 2025年江西省安全員B證(項目經理)考試題庫
- 廣州應用科技學院《手機多媒體開發(fā)》2023-2024學年第一學期期末試卷
- 2025青海建筑安全員A證考試題庫
- 廣州衛(wèi)生職業(yè)技術學院《多媒體信息處理與傳輸》2023-2024學年第一學期期末試卷
- 廣州鐵路職業(yè)技術學院《動畫設計原理》2023-2024學年第一學期期末試卷
- 2025社保政策培訓
- 2025年中小學春節(jié)安全教育主題班會課件
- 2024年單位司機個人工作總結(6篇)
- 【9物(北師)期末】阜陽市臨泉縣2023-2024學年九年級上學期期末考試物理試題
- 眼鏡銷售儀容儀表培訓
- “兩高”發(fā)布《關于辦理拒不執(zhí)行判決、裁定刑事案件適用法律若干問題的解釋》(新舊對照表)
- 醫(yī)生或醫(yī)技崗位招聘面試題與參考回答(某大型國企)2024年
- 2024國考:公司座談提綱2024
- 2024年掃地機器人市場動態(tài)及行業(yè)發(fā)展分析
- 藝術學概論學習通超星期末考試答案章節(jié)答案2024年
- 2024年區(qū)域牛羊肉獨家代理銷售協(xié)議
評論
0/150
提交評論