




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
2021-2022年廣東省潮州市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.
2.將兩個各有n個元素的有序表歸并成一個有序表,最少的比較次數(shù)是()。
A.nB.2n-1C.2nD.n-1
3.函數(shù)fseek(pf,OL,SEEKEND)中的SEEKENE代表的起始點是()。
A.文件開始B.文件末尾C.文件當前位置D.以上都不對
4.二進制數(shù)1110111.11轉(zhuǎn)換成十進制數(shù)是()。
A.119.375B.119.75C.119.125D.119.3
5.下列判斷正確的是()。
A.chara="ABCD":等價于char*a;*a="ABCD":
B.charstr[10]={"ABCD"}:等價于charstr[10];str[]={"ABCD"};
C.char*s="ABCD":等價于chars;*s="ABCD";
D.charc[5]="ABCD",d[5]="ABCD":等價于charc[5]-d[5]="ABCD";
6.若有定義:floatx=1.5;inta=1,b=3,c=2;則正確的switch語句是()。A.switch(x)
B.switch((int)x);{case1.0:printf("*\n");{case1:printf("*\n");case2.0:printf("**\n");}case2:printf("**\n");}
C.switch(a+B)
D.switch(a+B){case1;printf("*\n");{case1:printf("*\n");case2+1:printf("**\n");}casec:printf("**\n");)
7.若變量已正確定義,有以下程序段“i=0;do{printf(“%d,”,i);}while(i++);printf(“%d\n”,i);”,程序段的運行結果是()。A.0,1B.0,0C.1,1D.程序進入無限循環(huán)
8.下列結構體的定義語句中錯誤的是()。
A.structord{intx;inty;intz;}structorda;
B.structord{intx;inty;intz;};structorda;
C.structord{intx;inty;intz;}a;
D.struct{intx;inty;intz;}a;
9.該程序試圖通過指針p為變量n讀入數(shù)據(jù)并輸出,但程序有多處錯誤,以下語句正確的是()A.intn,*p=NULL;
B.*p=&n;.
C.scanf("%d",&p)
D.printf("%d\n",p);
10.已有定義:chara[]="xyz",b[]={'x','y','z'};,以下敘述中正確的是()。
A.數(shù)組a和b的長度相同B.a數(shù)組長度小于b數(shù)組長度C.a數(shù)組長度大于b數(shù)組長度D.以述說法都不對
11.一個C語言程序總是從()開始執(zhí)行。
A.書寫順序的第一函數(shù)B.書寫順序的第一條執(zhí)行語句C.主函數(shù)main()D.不確定
12.已知a,b均被定義為double型,則表達式:b=1,a=b+5/2的值為()。
A.1B.3C.3.0D.3.5
13.
14.下列關于棧敘述正確的是A.棧頂元素最先能被刪除B.棧頂元素最后才能被刪除C.棧底元素永遠不能被刪除D.上述三種說法都不對
15.用數(shù)組r存儲靜態(tài)鏈表,結點的next域指向后繼,工作指針j指向鏈中結點,使j沿鏈移動的操作為()。
A.j=r[j].nextB.j=j+1C.j=j->nextD.j=r[j]->next
16.下列選項中非法的字符常量是()。
A.'\t'B.'\039'C.','D.'\n'
17.
18.有以下程序:#include<stdio.h>main(){inta=123456,b;while(a){b=a%10;a/=10;switch(b){default:printf(“%d”,b++);case1:case2:printf(“%d”,b++);break;case3:printf(“%d”,b++);break;case4:printf(“%d”,b++);}}}程序運行后的輸出結果是()。
A.76654321B.12345667C.67564321D.654321
19.設有以下定義uniondata{intd1;floatd2;}demo;則下面敘述中錯誤的是A.變量demo與成員d2所占的內(nèi)存字節(jié)數(shù)相同
B.變量demo中各成員的地址相同
C.變量demo和各成員的地址相同
D.若給demo.d1賦99后,demo.d2中的值是99.0
20.下列敘述中錯誤的是()。
A.線性表是由n個元素組成的一個有限序列
B.線性表是一種線性結構
C.線性表的所有結點有且僅有一個前件和后件
D.線性表可以是空表
二、2.填空題(20題)21.以下程序運行后,若輸入:3,abcde<回車>,則輸出結果是【】。
#include<stdio.h>
#include<string.h>
move(char*str,intn)
{chartemp;inti;
temp=str[n-1];
for(i=n-1;i>0;i--)str[i]=str[i-1];
str[0]=temp;
}
main()
{chars[50];intn,i,z;
scanf("%d,%s",&n,s);
z=strlen(s);
for(i=1;i<=n;i++)move(s,z);
printf("%s\n",s);
}
22.以下程序的輸出結果是【】。
#include<stdio.h>
main()
{inti;
for(i=′a′;i<′f′;i++,i++)printf("%c",i-′a′+′A′);
printf("\n");
}
23.以下程序的功能是將字符串s中的數(shù)字字符放入d數(shù)組中,最后輸出d中的字符串。例如,輸入字符串:
abcl23edf456gh,執(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);
}
24.以下程序的作用是:從名為filea.dat的文本文件中逐個讀入字符并顯示在屏幕上。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{FILE*fp;charch;
fp=fopen(______);
ch=fSetc(fp);
while(!feof(fp)){putchar(ch);ch=fSetc(fp);}
putchar('\n');fclose(fp);
}
25.數(shù)據(jù)庫的邏輯模型設計階段的任務是將______轉(zhuǎn)換成關系模式。
26.下述函數(shù)用于統(tǒng)計一行字符中的單詞個數(shù),單詞之問用空格分隔。
word_num(str)
charstr[];
{inti,num=0,word=0;
fot(i=0;str[i]!=【】;i++)
if【】=='')word=0;
elseif(word==0)
{
word=1;
【】;
}
return(num);
}
27.能把計算機處理好的結果轉(zhuǎn)換成為文本、圖形、圖像或聲音等形式并輸送出來的設備稱為【】設備。
28.為了便于對照檢查,測試用例應由輸入數(shù)據(jù)和預期的【】兩部分組成。
29.在最壞情況下,冒泡排序的時間復雜度為【】。
30.以下程序的輸出結果是【】。
#include<stdlib.h>
main()
{char*s1,*s2,m;
s1=s2=(char*)malloc(sizeof(char));
*s1=15;*s2=20;m=*s1+*s2;
printf("%d\n",m);
}
31.以下程序運行后的輸出結果是【】。
#include<stdio,h>
main()
{chara[]="Language",b[]:"Programe";
char*pl,*p2;intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))printf("%c",*(pi+k));
}
32.與表達式a+=b等價的另一書寫形式是______。
33.下面程序用來輸出結構體變量a所占存儲單元的字節(jié)數(shù),請?zhí)羁铡?/p>
main()
{structstu
{charx[20];floaty;}a;
printf("asize:%d\n",sizeof(【】));
}
34.算法的復雜度主要包括空間復雜度和______復雜度。
35.下列程序的運行結果是______。
#include<stdio.h>
main()
{intfun();
fun();
}
fun()
{staticinta[4]={1,2,3,4};
inti;
for(i=0;i<4;i++)a[i]+=a[i];
for(i=0;i<4;i++)printf("%d,",a[i]);
printf"\n");
}
36.以下程序運行后的輸出結果是______。
main()
{intp=30;
printf{"%d\n",(p/3>0?p/10:p%3)};
}
37.以下函數(shù)rotate的功能是:將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第0列中,把a所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b所指二維數(shù)組中其他數(shù)據(jù)不變。
#defineN4
voidrotade(inta[][N],intb[][N])
{intI,j;
for(I=0;I<N;I++)
{b[I][N-1]=【】;【】=a[N-1][I];}}
38.以下程序運行后的輸出結果是______。
main()
{
inti,m=0,n=0,k=0;
for(i=9;i<=11;i++)
switch(i/10)
{
case0:m++;n++;break;
case10:n++;;break;
default:k++;n++;
}
printf("%d%d%d\n",m,n,k);
}
39.在程序設計階段應該采取______和逐步求精的方法,把一個模塊的功能逐步分解,細化為一系列具體的步驟,繼而用某種程序設計語言寫成程序。
40.一般來說,算法可以用順序、選擇和______三種基本控制結構組合而成。
三、1.選擇題(20題)41.設有定義:inta,*pa=&a;以下scanf語句中能正確為變量a讀入數(shù)據(jù)的是
A.scant("%d",pa);
B.scant("%d",a);
C.scanf("%d",&pa);
D.scanf("%d",*pa);
42.下述語句中,在字符串sl和s2相等時顯示“theyareEqual”的是()。
A.if(*s1==*s2)puts("theyareEqual");
B.if(!strcmp(s1,s2))puts("theyareEqual");
C.if(s1==s2)Puts("theyareEqual");
D.if(strcmp(s1,s2))puts("theyareEqual”);
43.算法的空間復雜度是指()。
A.算法程序的長度B.算法程序中的指令條數(shù)C.算法程序所占的存儲空間D.執(zhí)行算法需要的內(nèi)存空間
44.以下程序中函數(shù)f的功能是將n個字符串按由大到小的順序進行排序。#include<string.h>voidf(charp[][10],intn){chart[20];inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strcmp(p[i],p[j]<0){strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);}}main(){charp[][10]={“abc”,“aabdfg”,“abbd”,“dcdbe”,”cd”};inti;f(p,5);printf(“%d\n”,strlen(P[0]));}程序運行后的輸出結果是
A.6B.4C.5D.3
45.下面程序的運行結果是______。main(){unsigneda=3,b=10;printf("%d\n",a<<2|b>>1);}
A.3B.10C.13D.14
46.在C語言中,只有在使用時才占用內(nèi)存單元的變量,其存儲類型是()。
A.auto和register
B.extern和register
C.auto和static
D.static和register
47.判斷字符型變量chr為小寫字母的表達式是______。
A.'a'<=chr<='z'
B.(chr>='a')||(chr<='z')
C.(chr>=A)&&(chr<=z)
D.(chr>='a')&&(chr<='z')
48.打開一個已經(jīng)存在的非空文本文件,若文件名為stu,則正確的打開語句為()
A.FILE*fp;fp=fopen("stu.txt","r")
B.FILE*fp;fp=fopen(stu.txt,r)
C.FILE*fp;fP=fopen("stu,txt","wb")
D.FILE*fp;fp=fopen("stu.txt",wb)
49.若有定義:floatx=1.5;inta=1,b=3,c=2;,則正確的switch語句是
A.switch(x){case1.0:printf("*\n");case2.0:printf("**\n");}
B.switch((int)x);{case1:printf("*\n");case2:printf("**\n");}
C.switch(a+b){case1:printf("*\n");case2+1:printf("**\n");}
D.switch(a+b){case1:printf(**\n);}casec:printf(**\n);}
50.有下列程序:main(){intm,n,p;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p);}若想從鍵盤上輸入數(shù)據(jù),使變量m中的值為123,n中的值為456,P中的值為789,則正確的輸入是()。
A.m=123n=456p=789
B.m=123n=456p=789
C.m=123,n=456,p=789
D.123456789
51.下列選項中不合法的+六進制數(shù)是()。
A.OxffB.OXllC.OxlgD.OXabc
52.以下與函數(shù)fseek(fp,0L,SEEK_SE乃有相同作用的是()。
A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)
53.與十進制數(shù)96等值的二進制是()
A.1100000B.10010110C.1100001D.1100011
54.若有以下定義和語句,則輸出的結果是______。charc1='b',c2='e';printf("%d,%c\n",c2-c1,c2-'a'+"A");
A.2,MB.3,EC.2,ED.輸出結果不確定
55.下列程序的輸出結果是()。
#include<stdio.h>
main()
{inta=0,i;
for(i=1;i<5;i++)
{switch(i)
{case0:
case3:a+=1;
case1:
case2:a+=2;
default:a+=3;
}
}
printf("%d",a);
}
A.19B.18C.6D.8
56.設變量均已正確定義,若要通過scanf("%d%c%d%c",&a1,&c1,&a2,&c2);語句為變量a1和a2賦數(shù)值10和20,為變量c1和c2賦字符X和Y。以下所示的輸入形式中正確的是(注:□代表空格字符)
A.10□X□20□Y<回車>
B.10□X20□Y<回車>
C.10□X<回車>20□Y<回車>
D.10X<回車>20Y<回車>
57.常采用的兩種存儲結構是()。
A.順序存儲結構和鏈式存儲結構B.散列方法和索引方式C.鏈表存儲結構和數(shù)組D.線性存儲結構和非線性存儲結構
58.計算機網(wǎng)絡最突出的優(yōu)點是()
A.運算速度快B.存儲容量大C.共享資源D.精度高
59.已有定義:chara[]="xyz",b[]:{'x','y','z'};以下敘述中正確的是()。
A.數(shù)組a和b的長度相同B.a數(shù)組長度小于b數(shù)組長度C.a數(shù)組長度大于b數(shù)組長度D.上述說法都不對
60.有以下程序:#include<stdio.h>fun(charp[][10]){intn=0,i;for(i=0;i<7;i++)if(p[i][0]=='T')n++;returnn;}main(){charsir[][10]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"};prlnff("%d\n",fun(str));}程序執(zhí)行后的輸出結果是()。
A.1B.2C.3D.0
四、選擇題(20題)61.下列描述中不正確的是()。
A.字符型數(shù)組中可能存放字符串。
B.可以對字符型數(shù)組進行整體輸入、輸出。
C.可以對整型數(shù)組進行整體輸入、輸出。
D.不能在賦值語句中通過賦值運算符“=”對字符型數(shù)組進行整體賦值。
62.
執(zhí)行下列程序后,輸出的結果是()。
#include<stdio.h>
#defineS(X)X*X
voidmain
{inta=9,k=3,m=2;
a/=S(k+m)/S(k+m):
printf("%d",a);
}
A.1B.4C.9D.0
63.下列判斷正確的是()。A.A.chara="ABCD":等價于char*a;*a="ABCD":
B.charstr[10]={"ABCD"}:等價于charstr[10];str[]={"ABCD"};
C.char*s="ABCD":等價于chars;*s="ABCD";
D.charc[5]="ABCD",d[5]="ABCD":等價于charc[5]-d[5]="ABCD";
64.
65.
66.有如下說明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達式是()
A.*p+9B.*(p+8)C.*p+=9D.p+8
67.
68.以下關于字符串的敘述中正確的是()。
69.有以下程序:
程序運行后的輸出結果是()。
A.-2,3,B.-1,-2,C.-2,-3,D.-2,1
70.
71.常采用的兩種存儲結構是()。
A.順序存儲結構和鏈式存儲結構B.散列方法和索引方式C.鏈表存儲結構和數(shù)組D.線性存儲結構和非線性存儲結構
72.以下定義數(shù)組的語句中錯誤的是()。
73.
有下列程序:
#include<stdio.h>
main
{intx=0;
inty=0;
while(x<7&&++v)
{y--;
x++;}
printf("%d,%d",y,x);
}
程序的輸出結果是()。
A.0,7B.7,7C.0,6D.1,6
74.
75.
下面程序的功能是輸出以下形式的金字塔圖案:main
{inti,j;*
for(i=l;i<-4;i++)***
{for(j=1;j<=4-i;j++)printf("");
*****
for(j=1;j<=____;j++)printf("
*");*******
printf("\n");
}
}
在下劃線處應填入的是()。
A.iB.2*i一1C.n=2*i+1D.i+2
76.
77.一個工作人員可以使用多臺計算機,而一臺計算機可被多個人使用,則實體工作人員與實體計算機之間的聯(lián)系是()。
A.一對一B.一對多C.多對多D.多對一
78.
79.層次型、網(wǎng)狀型和關系型數(shù)據(jù)庫的劃分原則是()
A.數(shù)據(jù)之間的聯(lián)系方式B.記錄長度C.聯(lián)系的復雜程度D.文件的大小
80.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。
A.軟件需求規(guī)格說明書B.數(shù)據(jù)庫說明書C.集成測試計劃D.概要設計說明書
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:從低位開始取出長整型變量s中奇數(shù)位上的數(shù),依次構成一個新數(shù)放在t中。例如,當s中的數(shù)為l23456789時,t中的數(shù)為l3579。請修改程序中的錯誤,使它能得到正確結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:
六、程序設計題(1題)82.請編寫函數(shù)fun,其功能是:找出一維整型數(shù)組元素中最大的值所在的下標,并通過形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。
主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個數(shù),max存放最大值。index存放最大值所在元素的下標。
注意:部分源程序給出如下。
請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。
試題程序:
參考答案
1.C
2.B
3.BSEEK_SET代表文件的開始,SEEK_END代表文件末尾,SEEK_CUR代表文件當前位置。
4.B
5.Da=“ABCD”書寫錯誤,因為“=”左邊不能出現(xiàn)常量;數(shù)組名S是代表S數(shù)組首地址常量,而不是變量;字符串只有在定義時維數(shù)可以省略。
6.C
7.A第1次首先執(zhí)行循環(huán)體,輸出i的值為0,然后判斷while的條件“i++”,因為“i++”是后綴自增運算,先使用后自增,所以判斷時條件為假,跳出循環(huán),但是仍執(zhí)行了i的自增操作,i的值為1,在接下來的printf語句中進行輸出。故本題答案為A選項。
8.AA選項錯誤,在定義結構體語句后少了分號。故本題答案為A選項。
9.A[解析]選項B)的正確寫法應為p=&n;選項C)的正確寫法應為scanf("%d",p);選項D)的正確寫法應為printf("%d\\n",*p)。
10.C解析:對字符型一維數(shù)組在定義時初始化,既可以使用初始化列表,也可以使用字符串常量。不過由于字符串常量會自動在結尾添加\'\\0\',字符做結束標志,所以用字符串常量的初始化列表項個數(shù)是字符串的長度加1。因此題目中的chara[]='xyz';等價于chara[]={\'x\',\'y\',\'z\',\'\\0\');,所以a數(shù)組長度大于b數(shù)組長度,應該選C。
11.C
12.D
13.D
14.A解析:在棧中,允許插人與刪除的一端稱為棧頂,而不允許插入與刪除的另一端稱為棧底。棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。故本題選A。
15.A
16.B水平制表符中,'\t'表示的是橫向跳若干格;選項B中,'\039'錯誤,'\039'是八進制形式表的字符,最大數(shù)為7,但其中出現(xiàn)'9',','是字符逗號;選項D中,'\n'表示的是換行。
17.A
18.C程序中變量a的初值為123456,while循環(huán)的終止條件是a為0。循環(huán)開始將a的最后一位數(shù)字賦給b,a除以10后(丟棄最后一位)重新賦給a。在循環(huán)過程中,變量a和b的取值分別為:124566、123455、12344、1233、122、11。循環(huán)體中,執(zhí)行switch(b)語句,當b的數(shù)值不等于1、2、3、4時,首先執(zhí)行default語句,輸出b并將b自增1,再執(zhí)行case1、case2語句,輸出自增后的b值;當b的數(shù)值等于1、2、3、4時,只執(zhí)行case語句,輸出b的值。綜上,當b為6、5時,分別輸出67、56;當b為4、3、2、1時,分別輸出4、3、2、1。最終程序輸出結果為67564321。故本題答案為C選項。
19.D解析:聯(lián)合體的所有成員共占同一段內(nèi)存,所以聯(lián)合體變量的長度與它的最長成員所占長度…致,本題中float所占內(nèi)存字節(jié)數(shù)為4,而\u3000int類型在TurboC\u30002.0中是占2字節(jié)、在VisualC++6.0中占4字節(jié),所以int類型所占內(nèi)存字節(jié)數(shù)不會超過float,那demo就與成員d2所占字節(jié)數(shù)是相同的,選項A的說法正確。聯(lián)合體的所有成員的首地址都是相同的,和聯(lián)合體變量的地址一致。故選項B和C都是正確的。由于int類型數(shù)據(jù)和float類型數(shù)據(jù)在內(nèi)存中的存放格式是不一樣的,所以給d1賦99后,d2中不會得到99.0這個值。故選項D不正確,答案應該選擇D。
20.CC.【解析】線性表是一種線性結構,由n(n≥0)個元素組成,所以線性表可以是空表。但是在線性表中,第一個結點沒有前件,最后一個結點沒有后件,其他結點有且只有一個前件和后件,所以選項C.是錯誤的。
21.cdeabcdeab解析:程序中的move函數(shù)的作用是保存輸入數(shù)組中的最后一個元素,然后從最后一個數(shù)組元素開始,依次向后移動一個位置,再把保存的最后一個元素置于首位,循環(huán)次數(shù)由n控制。輸入3,abcde<回車>后主函數(shù)開始執(zhí)行,其中n=3,s[50]={'abcde'},z=5。第一次循環(huán),i=1時,調(diào)用move(s,5)函數(shù),temp=str[4]語句把數(shù)組中最后一個元素\'e\'保存在temp中,然后i從4開始循環(huán),將str[3](字符\'d\')賦給str[4],str[2](字符\'c\')賦給str[3],……,循環(huán)結束時str所指字符串為'aabcd',再將保存在temp中的\'e\'置于首位,字符串變?yōu)?eabcd';i=2時,調(diào)用move函數(shù),字符串為'deabc';i=3時,調(diào)用move函數(shù),字符串為'cdeab'。最后輸出結果為'cdeab'。
22.ACEACE解析:在本題中,for循環(huán)體每執(zhí)行完一次,變量i的值自加兩次。i的初值為\'a\',執(zhí)行一次循環(huán)后變?yōu)閈'c\',之后再變成\'e\',當其變?yōu)閈'g\'時,循環(huán)條件若不滿足,循環(huán)終止,故本題共輸出3個字符。表達式'i-\'a\'+\ue008\'A\'\ue009'即表示輸出i對應的大寫字母,結果為ACE。
23.s[i]>='0'&&s[i]<='9'或isdigit(s[i])或s[i]>=48&&s[i]<=57或s[i]<='9'&&s[i]>='0'或'9'>=s[i]&&'0'<=s[i]或'0'<=s[i]&&'9'>=s[i]或s[i]<=57&&s[i]>=48或57>=s[i]&&48<=s[i]或48<=s[i]&&57>=s[i]s[i]>='0'&&s[i]<='9'或isdigit(s[i])或s[i]>=48&&s[i]<=57或s[i]<='9'&&s[i]>='0'或'9'>=s[i]&&'0'<=s[i]或'0'<=s[i]&&'9'>=s[i]或s[i]<=57&&s[i]>=48或57>=s[i]&&48<=s[i]或48<=s[i]&&57>=s[i]解析:字符數(shù)組的初始化,字符串的輸入和輸出的應用。C語言沒有字符串變量,字符串不是存放在一個變量中而是存放在一個字符型數(shù)組中,因此為了存放字符串,常常在程序中定義字符型數(shù)組;字符串存放在字符數(shù)組中,但字符數(shù)組與字符串可以不等長,C語言規(guī)定以“\\0”字符作為字符串結束標志。
本題中,chars[80],d[80];定義了兩個字符型數(shù)組,可以放入80個字符。gets函數(shù)是c語言提供的一個專門用于讀字符串的函數(shù),它讀入全部字符(包括空格),直到遇到回車為止。本題中,讀入字符串s后,開始比較s中的每個字符是否為數(shù)字字符,因為字符數(shù)據(jù)在內(nèi)存中以相應的ASCII碼存放,所以只需比較相應的ASCII碼值是否在48('0'的ASCII代碼)與57('9'的ASCII代碼)之間,或者直接與'0','9'進行比較,如果是數(shù)字字符則將此字符存入d數(shù)組中,不是則繼續(xù)進行下一字符的比較,直至s結束(即'0'的出現(xiàn))。將“'\\0'”字符作為字符串d結束標志,最后調(diào)用puts函數(shù)輸出d。所以在空格處應填入比較語句s[i]>='0'&&s[i]<='9'或isdigit(s[i])或s[i]>=48&&s[i]<=57或s[i]<='9'&&s[i]>='0'或'9'>=s[i]&&'0'<=s[i]或'0'<=s[i]&&'9'>=s[i]或s[i]<=57&&s[i]>=48或&&48<=s[i]或57>=s[i]。
24.解析:fopen函數(shù)的調(diào)用方式通常為fopen(文件名,使用文件方式)。本題中要求程序可以打開filea.dat文件,并且是要讀取文件中的內(nèi)容,所以空白處應當填入'filea.dat','r'。
25.E-R圖E-R圖解析:數(shù)據(jù)庫邏輯設計的任務是將概念模型進一步轉(zhuǎn)化成相應的數(shù)據(jù)模型。而E-R圖是主要的概念模型,因此數(shù)據(jù)庫的邏輯設計的主要工作是將E-R圖轉(zhuǎn)換成關系模式。
26.\0'或0或NULLstr[i]num++或num=num+1或num+=1\\0'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或num+=1解析:觀察題目要求,可以知道以下幾點:①for循環(huán)的結束條件應當是:str[i]已是字符串的最后一個字符;②str[i]代表字符串str中的第i+1個字符;③整型變量num的值是要記錄的單詞的個數(shù)。C語言中規(guī)定字符串的最后一個字符是一個隱含的字符串結束符“\\0”,所以在題中第一個空中應填寫“\\0”;題中第二個空應填寫“str[i]”,以判斷當前位置的字符是否為空格;題中第三個空中應當填寫“num++”,通過變量num的加1累加得到字符串中的單詞個數(shù)。
27.輸出輸出
28.輸出結果輸出結果解析:注意:測試的基本方法和步驟。
29.
解析:冒泡排序法是通過相鄰數(shù)據(jù)元素的交換逐步將線性表變成有序。假設線性表的長度為n,則在最壞的情況下,冒泡排序需要經(jīng)過遍的從前往后的掃描和遍的從后往前的掃描,需要的比較次數(shù)為。
30.4040解析:本題中指針s1和s2都指向同一個內(nèi)存中的地址。因此語句“*s2=20;”執(zhí)行后,*\u3000s1=*s2=20。所以m最后的值為40。
31.gaegae解析:本題考查字符指針變量與字符數(shù)組。for循環(huán)語句共循環(huán)8次:
①當k=0時,*(Pl+0)='L',*(p2+0)='P',L!=P,沒有輸出。
②當k=1時,*(p1+1)='a',*(p2+1)='r',a!=r,沒有輸出。
③當k=2時,*(p1+2)='n',*(p2+2)='o',n!=o,沒有輸出。
④當k=3時,*(P1+3)='g',*(p2+3)='g',g==g,所以輸出g。
⑤當k=4時,*(p1+4)='u',*(P2+4)='r',u!=r,沒有輸出。
⑥當k=5時,*(p1+5)='a',*(p2+5)='a',a==a,所以輸出a。
⑦當k=6時,*(p1+6)='g',*(p2+6)='m',g!=m,沒有輸出。
⑧當k=7時,*(p1+7)='e',*(p2+7)='e',e==e,輸出e。
⑨當k=8時結束循環(huán),輸出結果為:gae。
32.a=a+ba=a+b解析:a+=b與a=a+b等價,作用是把變量a的值加b后再賦給變量a。
33.dd解析:d被定義為一個結構體類型變量,求結構體變量a所占存儲單元的字節(jié)數(shù)即sizeof(d)。
34.時間時間解析:算法的復雜度主要指時間復雜度和空間復雜度。
35.24682,4,6,8解析:子函數(shù)fun()的功能是將數(shù)組a中的元素都自加一遍,然后仍然將結果存在原數(shù)組中,其實就是將數(shù)組a的每個元素都變?yōu)樵瓉淼?倍,然后輸出。在主程序中首先通過intfun()定義了子函數(shù)fun(),然后再調(diào)用fun()。
36.33解析:本題考核的知識點是條件運算符的運用。三目運算表達式的規(guī)則為如果“?”前面表達式的值為真,則取“:”前的表達式的值,否則,取“:”后面表達式的值。又由于條件運算符的結合方向是自右向左的,所以在本試題中,先計算表達式中p%3,該值為0,在計算表達式P/10其值為3,最后計算表達式p/3該值為10.所以此表達式等價于“10?3:0”,顯然取“:”前的僵為3,所以最后輸出的值為3。
37.a[0][I]b[I][0]a[0][I],b[I][0]解析:b[i][N-1]=a[0][i]實現(xiàn)把a所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,\ue008b[I][0]=a[N-1][I]實現(xiàn)將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組中的第0列。
38.132132解析:本題考核的知識點是for循環(huán)與switch語句的綜合運用。主函數(shù)中用了一個for循環(huán),for循環(huán)里嵌套了一個switch語句,for循環(huán)了三次,當i=9時,i/10=0,執(zhí)行switch語句中case0分支,m和n的值各加1,變?yōu)?和1,然后遇到breake語句,退出switch語句;當i=10,i/10=1,執(zhí)行switch語句中default分支,使k和n的值各加1,變?yōu)?和1,退出switch語句:當i=11時,i/10=1,執(zhí)行switch語句中default分支,k和n的值各加1變,為2和3,退出switch語句,循環(huán)結束。故該空格處應該填132。
39.自頂向下自頂向下解析:在程序設計時,應先考慮總體,后考慮細節(jié),逐步使問題具體化,對復雜的問題,應該設計一些子目標作為過渡,上述方法概括為:自頂向下,逐步細化。
40.循環(huán)循環(huán)解析:算法一般由順序,選擇和循環(huán)三種基本控制結構組合而成。
41.A解析:scanf()函數(shù)的功能是進行輸入數(shù)據(jù),它是按格式參數(shù)的要求從終端上把數(shù)據(jù)傳送到地址參數(shù)所指定的內(nèi)存空間中,C語言允許程序員間接地使用內(nèi)存地址,這個地址是通過對變量名“求地址”運算得到的,求地址的運算符是&,得到的地址是一種符號地址。本題中定義了整型變量a和一個指向整型數(shù)據(jù)的指針變量pa,并定義pa是一個存放a的地址的變量。選項B中應該將a改為&a;選項C應該將&pa改為pa,因為pa已經(jīng)表示存放a的地址;選項D中*pa表示的是指針pa所指向存儲空間的變量的值,而不是一個地址。
42.B解析:字符串比較不能用兩個等號(==)來進行比較,應使用stremp(s1,s2)函數(shù)來比較。strcmp(s1,s2)函數(shù)的功能是:當字符串s1和s2相等時,返回值為0,因此,當表達式!strcmp(s1,s2)==1時,條件成立,執(zhí)行后面的語句,輸出theyareEqua1。
43.D解析:算法的復雜度主要包括算法的時間復雜度和算法的空間復雜度。所謂算法的時間復雜度是指執(zhí)行算法所需要的計算工作量;算法的空間復雜度一般是指執(zhí)行這個算法所需要的內(nèi)存空間。
44.C解析:函數(shù)stremp(字符串1,字符串2)作用是將“字符串1”和“字符串2”進行比較,如果“字符串1”>“字符串2”,返回一個大于0的整數(shù)值;如果“字符串1”<“字符串2”,返回一個小于0的整數(shù)值;如果“字符串1”=“字符串2”,返回0。函數(shù)strepy(字符串數(shù)組名,字符串,[整型表達式]),整型表達式的作用是將“字符串”的前“整型表達式”個字符存入到指定的“字符數(shù)組”中,若省略“整型表達式”,則將整個“字符串”存入“字符數(shù)組”中。函數(shù)f()的功能是利用選擇法把一個具有n行的二維數(shù)組中按行存放的n個字符串由大到小排序。在主函數(shù)中定義了一個二維字符數(shù)組p并給它按行賦初值,然后調(diào)用f()函數(shù),把它按行從大到小排列。字符串比較大小的標準是從第一個字符開始依次向右比較,遇到某一個字符大,該字符所在的字符串就是較大的字符串。由此可知最大的字符串為“dcdbe”,排序后存放在第一行,其首地址為P[0],在輸出語句輸出的P[0]指向的字符串長度是5。
45.C解析:本題考查移位運算和按位或運算,注意按位或運算時只要對應的二進制位中有一個為1,結果為1;若都為0,結果為00
46.A解析:在C語言中,動態(tài)存儲區(qū)域中存放的變量在使用時才分配內(nèi)存空間,函數(shù)調(diào)用時返回的地址和自動類局部變量等存放在動態(tài)存儲區(qū)域中。auto變量和register變量都屬于自動類局部變量,因此選項A正確。static說明的變量為靜態(tài)變量,靜態(tài)變量在內(nèi)存的靜態(tài)存儲中占據(jù)著永久的存儲單元,直至程序運行結束。extern說明的變量為外部變量,屬于全局變量,全局變量在整個程序運行期間都占用內(nèi)存空間。
47.B解析:程序段中定義x值為1,!x值為0,因此循環(huán)執(zhí)行的條件永遠成立,該循環(huán)是死循環(huán)。
48.A
49.C解析:C語言中,switch語句專用于實現(xiàn)多分支結構程序,其特點是各分支清晰而直觀。switch后面括號中可以是任何表達式,取其整數(shù)部分與各常量表達式進行比較。常量表達式中不能出現(xiàn)變量,且類型必須是整型、字符型或枚舉型,各常量表達式各不相同。
50.A解析:scanf()函數(shù)中格式控制字符串是為了輸入數(shù)據(jù)用的,無論其中有什么字符,在輸入數(shù)據(jù)時,按照一一對應的位置原樣輸入這些字符。
51.C解析:+六進制是以“0x”或“0X”開頭的字符串,字符串中只能含有0~9這10個數(shù)字和a、b、c、d、s、f這6個字母。
52.D解析:題目中fseek(fp,0L,SEEK_SET)的作用將文件指針定位到文件開始。feof(fp)的作用是判斷文件指針是否已到文件結尾,因此選項A不對。ftell(fp)的作用是獲取當前文件指針的位置,因此選項B不對。fgetc(fp)的作用是從文件中讀取一個字節(jié),因此選項C不對。rewind(fp)的作用是將文件指針重定位到文件開頭,所以應該選擇D。
53.A
54.B
55.A解析:本題考查switch語句。當i=1時,執(zhí)行case1,因為沒有遇到break語句,所以依次往下運行,a=a+2=2,a=a+3=5當i=2時,執(zhí)行case2,因為沒有遇到break語句,所以依次往下運行,a=a+2=7,a=a+3=10;當i=3時,執(zhí)行case3,a=a+1=11,因為沒有遇到break語句,所以依次往下運行,a=a+2=13,a=a+3=16;當i=4時,執(zhí)行default,a=a+3=19,結束循環(huán)。
56.D解析:本題中,scanf函數(shù)的格式控制沒有空格,所以,對于選項A)、B)、C),輸入的第一個空格會作為字符賦值給變量c1,而不會被解釋成分隔符。
57.AA?!窘馕觥烤€性表的存儲通常分為兩種存儲結構:順序存儲結構和鏈式存儲結構。
\n
58.C
59.C解析:數(shù)組長度是指數(shù)組占內(nèi)存空間的大小,即字節(jié)數(shù),它與sfflen函數(shù)所求的長度不同。對于chara[]='xyz',系統(tǒng)自動為其增加一個串結束符,\'\\0\',所以a數(shù)組的長度為4;對于b[]={\'x\',\'y\',\'z\'},系統(tǒng)不會為其增加串結束符\'\\0\',因此數(shù)組長度為3,故a數(shù)組長度大于b數(shù)組長度。
60.B解析:數(shù)組名str作為函數(shù)參數(shù)將實參數(shù)組的起始地址傳給形參數(shù)組p,當形參數(shù)組發(fā)生變化時主函數(shù)中的實參數(shù)組中的值也隨之發(fā)生變化。調(diào)用fun函數(shù)執(zhí)行for循環(huán)語句后,n為2,返回給main函數(shù)輸出。
61.C
62.D
\n本題主要考查帶參數(shù)的宏定義,過程如下:由于定義為define(x)x*x沒有括號優(yōu)先級,所以:a=a/(S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m)=9/(3+2*3+2/3+2*3+2)=0。
\n
63.Da=“ABCD”書寫錯誤,因為“=”左邊不能出現(xiàn)常量;數(shù)組名S是代表S數(shù)組首地址常量,而不是變量;字符串只有在定義時維數(shù)可以省略。
64.A
65.B
66.B解析:在C語言的數(shù)組元素的引用方法,我們在前面已經(jīng)講過了,比如數(shù)組元素a[0],可以用表達式*(p+0),即*p來引用,對于數(shù)組元素a[1],可以用表達式*(p+1)來引用,在這里,p+1的值就是數(shù)組元素a[1]的地址,對此地址使用“間接訪問運算符”:*(p+1)就代表存儲單元a[1],注意:一對圓括號不可少。同樣,對于數(shù)組元素a[2],則可以用表達式。(p+2)來引用…,對于數(shù)組元素a[9],可以用表達式,(p+9)來引用。因此,當指針變量p指向a數(shù)組的起始地址時,若0≤i<10,則數(shù)組元素a[i]可以用*(p+i)來表示。
67.B
68.A空格是一種字符,所以空串肯定比空格打頭的字符串小。
69.Afun()函數(shù)使用了靜態(tài)變量,靜態(tài)變量只在聲明時初始化一次。首先實參的數(shù)值是一12,if判斷后輸出負號,并將n=12,計算k+=n%10一k+=2—2,因此輸出2,后將數(shù)值除以10,結果為1,遞歸調(diào)用fun()函數(shù),第二次調(diào)用fun(),此時n=1,k=2,計算k+=n%10-÷k+=1——*3,因此打印3。故最后打印結果為一2,3,。故答案為A選項。
70.D
71.AA?!窘馕觥烤€性表的存儲通常分為兩種存儲結構:順序存儲結構和鏈式存儲結構。
\n
72.AA)選項中定義的數(shù)組為2行4列,而賦值時賦成了3行,因此出錯。
73.A
\n本題考查while循環(huán)。在while循環(huán)中,y自加每次循環(huán)都加l,在循環(huán)體內(nèi)y--每次減1,所以總的y值不變,當x自加到7時,不滿足循環(huán)條件,循環(huán)結束。
\n
74.B
75.B
\n對于第i行,程序先輸出4-i個空格,然后輸出2×i-1個'*',所以答案是B。
\n
76.C
77.C因為一個人可以操作多個計算機,而一臺計算機又可以被多個人使用,所以兩個實體之間是多對多的關系。
78.B
79.A\n數(shù)據(jù)庫按數(shù)據(jù)模型分為層次型數(shù)據(jù)庫、網(wǎng)狀型數(shù)據(jù)庫、關系型數(shù)據(jù)庫,數(shù)據(jù)模型即數(shù)據(jù)之間的聯(lián)系方式,因此正確選項為A)。
\n
80.A軟件需求規(guī)格說明書是需求分析階段最后的成果,它是作為需求分析的一部分而制定的可交付文檔。概要設計說明書、數(shù)據(jù)庫說明書、集成測試計劃都是概要設計階段需要編寫的文檔。
81.(1)錯誤:intproc(10ngS,long*t)
正確:voidproc(10ngs,long*t)
(2)錯誤:s=s%0100;
正確:s=s/100;
【解析】由主函數(shù)中的函數(shù)調(diào)用可知,函數(shù)proc()沒有返回值,因此,“intproc(longs,long*t)”應改為“voidproc(longs,long*t)”。題目要求是把奇數(shù)位上的數(shù)找出構成
一個新的數(shù)組,因此把“s=s%100;”改為“s=s/100;”。
82.
【解析】本題考查的是for循環(huán)和指針變量。通過for循環(huán)實現(xiàn)對數(shù)組的遍歷,形參iilax和d都是指針型變量,所以引用它們指向的變量時要進行指針運算。先有*max=a[0],在遍歷中如果遇到比max大的元素,則將a[i]賦值給max,下標i賦值給*d。循環(huán)語句用來遍歷數(shù)組元素,然后通過條件語句比較數(shù)組元素找到最大值。
2021-2022年廣東省潮州市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.
2.將兩個各有n個元素的有序表歸并成一個有序表,最少的比較次數(shù)是()。
A.nB.2n-1C.2nD.n-1
3.函數(shù)fseek(pf,OL,SEEKEND)中的SEEKENE代表的起始點是()。
A.文件開始B.文件末尾C.文件當前位置D.以上都不對
4.二進制數(shù)1110111.11轉(zhuǎn)換成十進制數(shù)是()。
A.119.375B.119.75C.119.125D.119.3
5.下列判斷正確的是()。
A.chara="ABCD":等價于char*a;*a="ABCD":
B.charstr[10]={"ABCD"}:等價于charstr[10];str[]={"ABCD"};
C.char*s="ABCD":等價于chars;*s="ABCD";
D.charc[5]="ABCD",d[5]="ABCD":等價于charc[5]-d[5]="ABCD";
6.若有定義:floatx=1.5;inta=1,b=3,c=2;則正確的switch語句是()。A.switch(x)
B.switch((int)x);{case1.0:printf("*\n");{case1:printf("*\n");case2.0:printf("**\n");}case2:printf("**\n");}
C.switch(a+B)
D.switch(a+B){case1;printf("*\n");{case1:printf("*\n");case2+1:printf("**\n");}casec:printf("**\n");)
7.若變量已正確定義,有以下程序段“i=0;do{printf(“%d,”,i);}while(i++);printf(“%d\n”,i);”,程序段的運行結果是()。A.0,1B.0,0C.1,1D.程序進入無限循環(huán)
8.下列結構體的定義語句中錯誤的是()。
A.structord{intx;inty;intz;}structorda;
B.structord{intx;inty;intz;};structorda;
C.structord{intx;inty;intz;}a;
D.struct{intx;inty;intz;}a;
9.該程序試圖通過指針p為變量n讀入數(shù)據(jù)并輸出,但程序有多處錯誤,以下語句正確的是()A.intn,*p=NULL;
B.*p=&n;.
C.scanf("%d",&p)
D.printf("%d\n",p);
10.已有定義:chara[]="xyz",b[]={'x','y','z'};,以下敘述中正確的是()。
A.數(shù)組a和b的長度相同B.a數(shù)組長度小于b數(shù)組長度C.a數(shù)組長度大于b數(shù)組長度D.以述說法都不對
11.一個C語言程序總是從()開始執(zhí)行。
A.書寫順序的第一函數(shù)B.書寫順序的第一條執(zhí)行語句C.主函數(shù)main()D.不確定
12.已知a,b均被定義為double型,則表達式:b=1,a=b+5/2的值為()。
A.1B.3C.3.0D.3.5
13.
14.下列關于棧敘述正確的是A.棧頂元素最先能被刪除B.棧頂元素最后才能被刪除C.棧底元素永遠不能被刪除D.上述三種說法都不對
15.用數(shù)組r存儲靜態(tài)鏈表,結點的next域指向后繼,工作指針j指向鏈中結點,使j沿鏈移動的操作為()。
A.j=r[j].nextB.j=j+1C.j=j->nextD.j=r[j]->next
16.下列選項中非法的字符常量是()。
A.'\t'B.'\039'C.','D.'\n'
17.
18.有以下程序:#include<stdio.h>main(){inta=123456,b;while(a){b=a%10;a/=10;switch(b){default:printf(“%d”,b++);case1:case2:printf(“%d”,b++);break;case3:printf(“%d”,b++);break;case4:printf(“%d”,b++);}}}程序運行后的輸出結果是()。
A.76654321B.12345667C.67564321D.654321
19.設有以下定義uniondata{intd1;floatd2;}demo;則下面敘述中錯誤的是A.變量demo與成員d2所占的內(nèi)存字節(jié)數(shù)相同
B.變量demo中各成員的地址相同
C.變量demo和各成員的地址相同
D.若給demo.d1賦99后,demo.d2中的值是99.0
20.下列敘述中錯誤的是()。
A.線性表是由n個元素組成的一個有限序列
B.線性表是一種線性結構
C.線性表的所有結點有且僅有一個前件和后件
D.線性表可以是空表
二、2.填空題(20題)21.以下程序運行后,若輸入:3,abcde<回車>,則輸出結果是【】。
#include<stdio.h>
#include<string.h>
move(char*str,intn)
{chartemp;inti;
temp=str[n-1];
for(i=n-1;i>0;i--)str[i]=str[i-1];
str[0]=temp;
}
main()
{chars[50];intn,i,z;
scanf("%d,%s",&n,s);
z=strlen(s);
for(i=1;i<=n;i++)move(s,z);
printf("%s\n",s);
}
22.以下程序的輸出結果是【】。
#include<stdio.h>
main()
{inti;
for(i=′a′;i<′f′;i++,i++)printf("%c",i-′a′+′A′);
printf("\n");
}
23.以下程序的功能是將字符串s中的數(shù)字字符放入d數(shù)組中,最后輸出d中的字符串。例如,輸入字符串:
abcl23edf456gh,執(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);
}
24.以下程序的作用是:從名為filea.dat的文本文件中逐個讀入字符并顯示在屏幕上。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{FILE*fp;charch;
fp=fopen(______);
ch=fSetc(fp);
while(!feof(fp)){putchar(ch);ch=fSetc(fp);}
putchar('\n');fclose(fp);
}
25.數(shù)據(jù)庫的邏輯模型設計階段的任務是將______轉(zhuǎn)換成關系模式。
26.下述函數(shù)用于統(tǒng)計一行字符中的單詞個數(shù),單詞之問用空格分隔。
word_num(str)
charstr[];
{inti,num=0,word=0;
fot(i=0;str[i]!=【】;i++)
if【】=='')word=0;
elseif(word==0)
{
word=1;
【】;
}
return(num);
}
27.能把計算機處理好的結果轉(zhuǎn)換成為文本、圖形、圖像或聲音等形式并輸送出來的設備稱為【】設備。
28.為了便于對照檢查,測試用例應由輸入數(shù)據(jù)和預期的【】兩部分組成。
29.在最壞情況下,冒泡排序的時間復雜度為【】。
30.以下程序的輸出結果是【】。
#include<stdlib.h>
main()
{char*s1,*s2,m;
s1=s2=(char*)malloc(sizeof(char));
*s1=15;*s2=20;m=*s1+*s2;
printf("%d\n",m);
}
31.以下程序運行后的輸出結果是【】。
#include<stdio,h>
main()
{chara[]="Language",b[]:"Programe";
char*pl,*p2;intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))printf("%c",*(pi+k));
}
32.與表達式a+=b等價的另一書寫形式是______。
33.下面程序用來輸出結構體變量a所占存儲單元的字節(jié)數(shù),請?zhí)羁铡?/p>
main()
{structstu
{charx[20];floaty;}a;
printf("asize:%d\n",sizeof(【】));
}
34.算法的復雜度主要包括空間復雜度和______復雜度。
35.下列程序的運行結果是______。
#include<stdio.h>
main()
{intfun();
fun();
}
fun()
{staticinta[4]={1,2,3,4};
inti;
for(i=0;i<4;i++)a[i]+=a[i];
for(i=0;i<4;i++)printf("%d,",a[i]);
printf"\n");
}
36.以下程序運行后的輸出結果是______。
main()
{intp=30;
printf{"%d\n",(p/3>0?p/10:p%3)};
}
37.以下函數(shù)rotate的功能是:將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第0列中,把a所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b所指二維數(shù)組中其他數(shù)據(jù)不變。
#defineN4
voidrotade(inta[][N],intb[][N])
{intI,j;
for(I=0;I<N;I++)
{b[I][N-1]=【】;【】=a[N-1][I];}}
38.以下程序運行后的輸出結果是______。
main()
{
inti,m=0,n=0,k=0;
for(i=9;i<=11;i++)
switch(i/10)
{
case0:m++;n++;break;
case10:n++;;break;
default:k++;n++;
}
printf("%d%d%d\n",m,n,k);
}
39.在程序設計階段應該采取______和逐步求精的方法,把一個模塊的功能逐步分解,細化為一系列具體的步驟,繼而用某種程序設計語言寫成程序。
40.一般來說,算法可以用順序、選擇和______三種基本控制結構組合而成。
三、1.選擇題(20題)41.設有定義:inta,*pa=&a;以下scanf語句中能正確為變量a讀入數(shù)據(jù)的是
A.scant("%d",pa);
B.scant("%d",a);
C.scanf("%d",&pa);
D.scanf("%d",*pa);
42.下述語句中,在字符串sl和s2相等時顯示“theyareEqual”的是()。
A.if(*s1==*s2)puts("theyareEqual");
B.if(!strcmp(s1,s2))puts("theyareEqual");
C.if(s1==s2)Puts("theyareEqual");
D.if(strcmp(s1,s2))puts("theyareEqual”);
43.算法的空間復雜度是指()。
A.算法程序的長度B.算法程序中的指令條數(shù)C.算法程序所占的存儲空間D.執(zhí)行算法需要的內(nèi)存空間
44.以下程序中函數(shù)f的功能是將n個字符串按由大到小的順序進行排序。#include<string.h>voidf(charp[][10],intn){chart[20];inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strcmp(p[i],p[j]<0){strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);}}main(){charp[][10]={“abc”,“aabdfg”,“abbd”,“dcdbe”,”cd”};inti;f(p,5);printf(“%d\n”,strlen(P[0]));}程序運行后的輸出結果是
A.6B.4C.5D.3
45.下面程序的運行結果是______。main(){unsigneda=3,b=10;printf("%d\n",a<<2|b>>1);}
A.3B.10C.13D.14
46.在C語言中,只有在使用時才占用內(nèi)存單元的變量,其存儲類型是()。
A.auto和register
B.extern和register
C.auto和static
D.static和register
47.判斷字符型變量chr為小寫字母的表達式是______。
A.'a'<=chr<='z'
B.(chr>='a')||(chr<='z')
C.(chr>=A)&&(chr<=z)
D.(chr>='a')&&(chr<='z')
48.打開一個已經(jīng)存在的非空文本文件,若文件名為stu,則正確的打開語句為()
A.FILE*fp;fp=fopen("stu.txt","r")
B.FILE*fp;fp=fopen(stu.txt,r)
C.FILE*fp;fP=fopen("stu,txt","wb")
D.FILE*fp;fp=fopen("stu.txt",wb)
49.若有定義:floatx=1.5;inta=1,b=3,c=2;,則正確的switch語句是
A.switch(x){case1.0:printf("*\n");case2.0:printf("**\n");}
B.switch((int)x);{case1:printf("*\n");case2:printf("**\n");}
C.switch(a+b){case1:printf("*\n");case2+1:printf("**\n");}
D.switch(a+b){case1:printf(**\n);}casec:printf(**\n);}
50.有下列程序:main(){intm,n,p;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p);}若想從鍵盤上輸入數(shù)據(jù),使變量m中的值為123,n中的值為456,P中的值為789,則正確的輸入是()。
A.m=123n=456p=789
B.m=123n=456p=789
C.m=123,n=456,p=789
D.123456789
51.下列選項中不合法的+六進制數(shù)是()。
A.OxffB.OXllC.OxlgD.OXabc
52.以下與函數(shù)fseek(fp,0L,SEEK_SE乃有相同作用的是()。
A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)
53.與十進制數(shù)96等值的二進制是()
A.1100000B.10010110C.1100001D.1100011
54.若有以下定義和語句,則輸出的結果是______。charc1='b',c2='e';printf("%d,%c\n",c2-c1,c2-'a'+"A");
A.2,MB.3,EC.2,ED.輸出結果不確定
55.下列程序的輸出結果是()。
#include<stdio.h>
main()
{inta=0,i;
for(i=1;i<5;i++)
{switch(i)
{case0:
case3:a+=1;
case1:
case2:a+=2;
default:a+=3;
}
}
printf("%d",a);
}
A.19B.18C.6D.8
56.設變量均已正確定義,若要通過scanf("%d%c%d%c",&a1,&c1,&a2,&c2);語句為變量a1和a2賦數(shù)值10和20,為變量c1和c2賦字符X和Y。以下所示的輸入形式中正確的是(注:□代表空格字符)
A.10□X□20□Y<回車>
B.10□X20□Y<回車>
C.10□X<回車>20□Y<回車>
D.10X<回車>20Y<回車>
57.常采用的兩種存儲結構是()。
A.順序存儲結構和鏈式存儲結構B.散列方法和索引方式C.鏈表存儲結構和數(shù)組D.線性存儲結構和非線性存儲結構
58.計算機網(wǎng)絡最突出的優(yōu)點是()
A.運算速度快B.存儲容量大C.共享資源D.精度高
59.已有定義:chara[]="xyz",b[]:{'x','y','z'};以下敘述中正確的是()。
A.數(shù)組a和b的長度相同B.a數(shù)組長度小于b數(shù)組長度C.a數(shù)組長度大于b數(shù)組長度D.上述說法都不對
60.有以下程序:#include<stdio.h>fun(charp[][10]){intn=0,i;for(i=0;i<7;i++)if(p[i][0]=='T')n++;returnn;}main(){charsir[][10]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"};prlnff("%d\n",fun(str));}程序執(zhí)行后的輸出結果是()。
A.1B.2C.3D.0
四、選擇題(20題)61.下列描述中不正確的是()。
A.字符型數(shù)組中可能存放字符串。
B.可以對字符型數(shù)組進行整體輸入、輸出。
C.可以對整型數(shù)組進行整體輸入、輸出。
D.不能在賦值語句中通過賦值運算符“=”對字符型數(shù)組進行整體賦值。
62.
執(zhí)行下列程序后,輸出的結果是()。
#include<stdio.h>
#defineS(X)X*X
voidmain
{inta=9,k=3,m=2;
a/=S(k+m)/S(k+m):
printf("%d",a);
}
A.1B.4C.9D.0
63.下列判斷正確的是()。A.A.chara="ABCD":等價于char*a;*a="ABCD":
B.charstr[10]={"ABCD"}:等價于charstr[10];str[]={"ABCD"};
C.char*s
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度互聯(lián)網(wǎng)數(shù)據(jù)中心委托經(jīng)營管理協(xié)議
- 二零二五年度醫(yī)院員工招聘與管理服務合同
- 二零二五年度人工智能聯(lián)營投資合同模板
- 二零二五年度果園承包與農(nóng)業(yè)金融服務合作協(xié)議
- 2025年度沿街房屋租賃合同(含房屋維護及保養(yǎng)責任)
- 二零二五年度金融行業(yè)競業(yè)禁止協(xié)議補償金計算細則
- 二零二五年度精裝修房屋租賃協(xié)議書
- 二零二五年度主合同與從合同在新能源汽車產(chǎn)業(yè)鏈中的協(xié)同發(fā)展及風險共擔協(xié)議
- 二零二五年度文化產(chǎn)業(yè)股權投資合同協(xié)議
- 2025年度苗木種植與生態(tài)農(nóng)業(yè)開發(fā)協(xié)議
- 產(chǎn)品品質(zhì)檢驗流程標準規(guī)范模板()
- DB12-595-2015醫(yī)院安全防范系統(tǒng)技術規(guī)范
- 五年級下冊英語課件-Unit 2 My favourite season B Let's learn 人教PEP版(共15張PPT)
- GB∕T 7260.40-2020 不間斷電源系統(tǒng) UPS 第4部分:環(huán)境 要求及報告
- 高邊坡施工危險源辨識及分析
- 水廠項目基于BIM技術全生命周期解決方案-城市智慧水務講座課件
- 幼兒園繪本:《閃閃的紅星》 紅色故事
- 三年級學而思奧數(shù)講義.doc
- 劉姥姥進大觀園課本劇劇本3篇
- 產(chǎn)品承認書客(精)
- 投標人基本情況一覽表格
評論
0/150
提交評論