版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
2021-2022年山東省濱州市全國計算機等級考試C語言程序設(shè)計真題(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.
2.以下敘述中正確的是()A.當(dāng)對文件的讀(寫操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失
B.打開一個已存在的文件并進行了寫操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋
C.在一個程序中當(dāng)對文件進行了寫操作后,必須先關(guān)閉該文件然后再打開,才能讀到第1個數(shù)據(jù)
D.語言中的文件是流式文件,因此只能順序存取數(shù)據(jù)
3.有以下程序:#include<stdio.h>main(){intx=3,y=5,z1,z2;z1=y^x^y;z2=x^y^x;printf(“%d,%d\n”,z1,z2);}程序運行后的輸出結(jié)果是()。
A.7,7B.5,3C.8,8D.3,5
4.已知小寫母a的ASCII碼為97,大寫字母A的ASCII碼為65,以下程序的結(jié)果是_______。main(){unsignedinta=32,b=66;printf("%c\n",a|B);}
A.66B.98C.bD.B
5.下列敘述中正確的是A.為了建立一個關(guān)系,首先要構(gòu)造數(shù)據(jù)的邏輯關(guān)系
B.表示關(guān)系的二維表中各元組的每一個分量還可以分成若干數(shù)據(jù)項
C.一個關(guān)系的屬性名表稱為關(guān)系模式
D.一個關(guān)系可以包括多個二維表
6.下列寫法正確的是()。
A.main(){inti=3,j;j=5}
B.main(){inti=3;
C.main()
D.main(){;}
7.數(shù)組A[5][6]的每個元素占五個字節(jié),將其按列優(yōu)先次序存儲在起始地址為1000的內(nèi)存單元中,下標(biāo)從1開始,則元素A[5][5]的地址是()。
A.1175B.1180C.1205D.1120
8.有以下程序:
程序運行后的輸出結(jié)果是()。
A.10B.40C.32D.8
9.判斷字符串s1是否大于字符串s2,應(yīng)該使用()。
A.if(strcmp(s1,s2)<0)
B.if(s1>s2)
C.if(strcmp(s2,s1)<0)
D.if(strcmp(s1,s2))
10.有以下程序:#include<stdio.h>main(){charch=‘1’;while(ch<‘9’){printf(“%d”,ch-‘0’);ch++;}}程序運行后的輸出結(jié)果是()。
A.12345678B.01234567C.0D.1
11.有以下程序:
程序運行后的輸出結(jié)果是()。
A.1,2,6,24,120,B.1,2,3,4,5,C.1,1,1,1,1,D.1,2,4,6,8,
12.C語言常量的類型從字面形式上可區(qū)分,以下判斷中正確的是()。
A.2E3——整型B.2.0E3——實型C.‘\025’——字符串D.“a”——字符型
13.若在線性表中采用折半查找法查找元素,該線性表應(yīng)該()A.元素按值有序B.構(gòu)采用順序存儲結(jié)C.元素按值有序且采用順序存儲結(jié)構(gòu)D.元素按值有序且采用鏈?zhǔn)酱鎯Y(jié)構(gòu)
14.用鄰接矩陣A表示有向圖G的存儲結(jié)構(gòu),則有向圖G中頂點i的出度為()。
A.第i行非0元素的個數(shù)之和B.第i列非0元素的個數(shù)之和C.第i行0元素的個數(shù)之和D.第i列0元素的個數(shù)之和
15.要求通過while循環(huán)不斷讀入字符,當(dāng)讀入字母N時結(jié)束循環(huán),若變量已正確定義,下列正確的程序段是()。
A.while((ch=getchar())!='N')printf("%c",ch);
B.while(ch=getchar()!='N')printf("%c",ch);
C.while(ch=getchar()=='N')printf("%c",ch);
D.while((ch=getchar())=='N')printf("%c",ch);
16.判斷char型變量c1是否為小寫字母的正確表達式為()。
A.'a'<=c1<='Z'
B.(c1>=A)‖c1<=z)
C.('a'=>c1‖("z"<=c1)
D.(c1>='a')&&(c1<='z')
17.若輸入“abcdef”“abdef”,下述程序的輸出結(jié)果為()。#include<stdio.h>#include<string.h>main{intn;chars1[20],s2[20],*p1,*p2;scanf("%s",s1);scanf("%S",s2);p1=s1;p2=s2;n=strcmp(p1,p2);printf("Vood\n",n);}A.-1B.0C."abcdef"D."abdef"
18.下列排序算法中,()算法可能會出現(xiàn)下面情況:初始數(shù)據(jù)有序時,花費的時間反而最多。
A.堆排序B.冒泡排序C.快速排序D.希爾排序
19.一個有n個頂點的連通無向圖至少有()條邊。
A.n-1B.nC.n+1D.n+2
20.以下敘述中錯誤的是()。
A.在一個函數(shù)內(nèi)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有效
B.在一個函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效
C.在不同的函數(shù)中可以定義相同名字的變量
D.函數(shù)的形參是局部變量
二、2.填空題(20題)21.以下程序運行后輸出的結(jié)果是【】。
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:switch(y)
{
case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
}
printf("%d%d\n",a,b);
}
22.數(shù)據(jù)的物理結(jié)構(gòu)在計算機存儲空間中的存放形式稱為數(shù)據(jù)的【】。
23.有以下程序段,且變量已正確定義和賦值
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);
24.度為10的線性表進行冒泡排序,最壞情況下需要比較的次數(shù)為______。
25.數(shù)據(jù)庫技術(shù)的主要特點為數(shù)據(jù)的集成性、數(shù)據(jù)的高【】和低冗余性、數(shù)據(jù)獨立性和數(shù)據(jù)統(tǒng)一管理與控制。
26.以下程序建立了一個帶有頭結(jié)點的單向鏈表,鏈表結(jié)點中的數(shù)據(jù)通過鍵盤輸入,當(dāng)輸人數(shù)據(jù)為-1時,表示輸入結(jié)束(鏈表頭結(jié)點的data域不放數(shù)據(jù),表空的條件是ph->next=NULL).
#include<stdio.h>
structlist{intdatd;structlist*next;};
【】creatlist()
{structlist*p,*q,*ph;
inta;
ph=(structlist*)malloc(sizeof(structlist));
p=q=ph;
printf("Inputanintegernumber,enter-1toend:\n");
scanf("%d",&a);
while(a!=-1)
{
p=(structlist*)malloc(sizeof(structlist));
p->data=a;
q->next=p;
【】=p;
scanf("%d",&a);
}
p->next='\0';
return(ph);
}
main()
{
structlisthead;
head=creatlist();
}
27.以下程序運行后的輸出結(jié)果是()。
main()
{inta=3,b=4,c=5,t=99;
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,A);
}
28.以下程序的輸出結(jié)果是【】。
main()
{unsignedshorta=65536;intb;
printfC%d\n",b=a);
}
29.\13'在內(nèi)存中占1個字節(jié),"\12"在內(nèi)存中占______個字節(jié)。
30.設(shè)y為血型變量,請寫出描述“y是偶數(shù)”的表達式______。
31.以下isprime函數(shù)的功能是判斷形參a是否為素數(shù),是素數(shù),函數(shù)返回1,
否則返回0。請?zhí)羁铡?/p>
intisprime(inta)
{inti;
for(i=2;i<=a/2;i++)
if(a%i==0)【】;
【】;
}
32.當(dāng)數(shù)據(jù)的物理結(jié)構(gòu)(存儲結(jié)構(gòu))改變時,不影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化,這是指數(shù)據(jù)的【】。
33.以下程序的輸出結(jié)果是()。#include<stdio.h>intfun(intx){staticintt=0;return(t+=x);}main(){ints,i;for(i=1;i<=5;i++)s=fun(i);printf("%d\11",s);}
34.設(shè)有以下變量定義,并已賦確定的值,
charw;intx;floaty;doubleZ;
則表達式:w*x+z-y所求得的數(shù)據(jù)類型為上【】。
35.常用的軟件結(jié)構(gòu)設(shè)計工具是結(jié)構(gòu)圖(SC),也稱程序結(jié)構(gòu)圖。其中,用矩形表示______,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。
36.下列程序的輸出結(jié)果是【】。
main()
{inta=1,b=2;
a=a+b;b=a-b,a=a-b;
printf("%d,%d\n",a,b);
}
37.下面程序的輸出結(jié)果是【】。
main()
{intarr[10],i,k=0;
for(i=0;i<10;i++)arr[i]=i;
for(i=0;i<4;i++)k+=arr[i]=i;
printf("%d\n",k);
}
38.以下程序中函數(shù)huiwen的功能是檢查一個字符串是否是回文,當(dāng)字符串是回文時,函數(shù)數(shù)返回字符串:yes!否則函數(shù)返回這符串:no!并在主函數(shù)中輸出。所謂回文即正向與反向的拼寫都一樣,例如:adgda。請?zhí)羁?/p>
#include<string.h>
char*huiwen(char*str)
{char*p1,*p2;inti,t=0;
pl=str;p2=______;
for(i=0;i<=strlen(str)/2;i+*)
if(*p1++!=*p2--){t=1;break;}
if(______)return("yes!");
elsereturn(*no!");
}
main()
{charstr[50];
printf("Input:");scanf("%s",str);
printf("%s\n",______);
}
39.以下程序中給指針p分配三個double型動態(tài)內(nèi)存單元,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{dOuble*p;
p=(double*)malloc();
p[0]=1.5;p[1]=2.5;p[2]=3.5
printf("%f%f%f\n",p[0],p[1],p[2]);
}
40.用以下程序計算1到100的整數(shù)的累加和。請?zhí)羁铡?/p>
main()
{inti,sum=【】;
i=1;
for(【】)
{sum+=j(luò)
i++;
}
printf("sum=%d\n",【】);
}
三、1.選擇題(20題)41.若有定義:"inta[2][3];"則對a數(shù)組的第i行第j列無素的正確引用為()。
A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j
42.下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進行查找的是()。
A.順序存儲的有序線性表B.線性鏈表C.二叉鏈表D.有序線性鏈表
43.下列不屬于軟件工程的3個要素的是______。
A.工具B.過程C.方法D.環(huán)境
44.下列程序的輸出結(jié)果是______。main(){intn[5]={0,0,0},i,k=2;for(i=0;i
A.不確定的值B.2C.1D.0
45.以下定義語句中正確的是
A.inta=b=0;
B.charA=65+1,b=′b′;
C.floata=1,*b=&a,*c=&b;
D.doublea=00;b=1.1;
46.當(dāng)運行以下程序時,從鍵盤輸入AhaMA(空格)Aha<CR>,則下面程序的運行結(jié)果是#include<stdio.h>main(){chars[80],c='a';inti=0;scanf("%s",s);while(s[i]!='\n\){if(s[i]]==c)s[i]-32;elseif(s[i]==c-32)s[i]=s[i]+32;i++;}puts(s);}
A.ahaMaB.AbAMaC.A11AMa[空格]ahaD.ahAMa[空格]ahA
47.下列選項中,合法的C語言關(guān)鍵字是______。
A.VARB.cherC.integerD.default
48.以下對結(jié)構(gòu)體類型變量的定義中,不正確的是_______。
A.typedefstructaa{intn;floatm;}aa;aatd1;
B.#defineaastructaaaa{intn;floatm;}td1;
C.struct{intn;floatm;}aa;structaatd1;
D.struct{intn;floatm;}td1;
49.運行下面程序時,從鍵盤輸入字母H,則輸出結(jié)果是
#include<stdio.h>
main()
{charch;
ch=getchar();
switch(ch)
{case′H′:printf("Hello!\n");
case′G′:printf("Goodmorning!\n");
default:printf("Bye_Bye!\n");
}
}
A.Hello!
B.Hello!GoodMoring!
C.Hello!Goodmorning!Bye_Bye!
D.Hello!Bye_Bye!
50.下述語句中,在字符串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”);
51.有以下程序intx=3;do{printf("%d",x-=2);}while(!(--x));程序運行后的輸出結(jié)果是()
A.1B.30C.1,-2D.死循環(huán)
52.下列判斷正確的是()。
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";
53.有定義語句:intb;charc[10];,則正確的輸入語句是
A.scanf("%d%s",&b,&c);
B.scanf("%d%s",&b,c);
C.scanf("%d%s",b,c);
D.scanf("%d%s",b,&c);
54.設(shè)語句inta=3;,當(dāng)執(zhí)行了以下語句后,變量a的值是______。a+=a-=a*a;
A.3B.0C.9D.-12
55.設(shè)fp為指向某二進制文件的指針,且已讀到此文件末尾,則函數(shù)feof(fp)的返回值為______。A.EOFB.非0值C.0D.NULL
56.有以下程序:#include<string.h>voidf(char*s,char*t){chark;k=*s;*s=*t;*t=k;s++;t--;if(*s)f(s,t);}main(){charstr[10]="abcdefg",*p;p=str+strlen(str)/2+1;f(p,p-2);printf("%s\n",str);}程序運行后的輸出結(jié)果是()。
A.abcdcfgB.gfedcbaC.gbcdefaD.abedcfg
57.字符(char)型數(shù)據(jù)在微機內(nèi)存中的存儲形式是______。
A.反碼B.補碼C.EBCDIC碼D.ASCⅡ碼
58.下面程序段的運行結(jié)果是charstr[]="ABC",*p=str;printf("%d\n",*(p+3));
A.67B.0C.字符'C'的地址D.字符'C'
59.有以下程序main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}程序運行后的輸出結(jié)果是______。
A.22B.76C.72D.62
60.定義int*swap()指的是______。
A.—個返回整型值的函數(shù)swap()
B.一個返回指向整型值指針的函swap()
C.一個指向函數(shù)swap()的指針,函數(shù)返回一個整型值
D.以上說法均錯
四、選擇題(20題)61.有以下程序:
程序運行后的輸出結(jié)果是()。
A.12B.14C.1234D.123456
62.
63.下面程序由兩個源程序文件t4.h和t4.c組成,程序編譯運行的結(jié)果是()。
t4.h的源程序為:
A.920B.1611C.911D.1610
64.
65.(23)在深度為5的滿二叉樹中,葉子結(jié)點的個數(shù)為______。
A.32
B.31
C.16
D.15
66.有以下程序:
程序運行后的輸出結(jié)果是()O
A.321678B.876543C.1098765D.345678
67.一個工作人員可以使用多臺計算機,而一臺計算機可被多個人使用,則實體工作人員與實體計算機之間的聯(lián)系是()。
A.一對一B.一對多C.多對多D.多對一
68.已知大寫字母A的ASCIl碼值是65,小寫字母a的ASCIl碼值是97。以下不能將變量C中的大寫字母轉(zhuǎn)換為對應(yīng)小寫字母的語句是()。
A.C=(。A’+C.%26一"a"B.c=c+32C.c=c一"A"+"a"D.c=(c一’A")%26+-a"
69.
70.在數(shù)據(jù)流圖(DFD)中,帶有說明的箭頭表示
A.模塊之間的調(diào)用關(guān)系B.程序的組成成分C.控制程序的執(zhí)行順序D.?dāng)?shù)據(jù)的流向
71.若有說明,double*m,n;則能通過sCanf語句正確給輸入項讀人數(shù)據(jù)的程序段是()。
A.*m=&n;scanf("%lf",m);
B.m=(double*)malloc(10);scanf("%f",m);
C.m=&n;scanf("%lf",n);
D.m=&n;scanf("%le",m);
72.在面向?qū)ο蠓椒ㄖ?,不屬于“對象’’基本特點的是()。A.一致性B.分類性C.多態(tài)性D.標(biāo)識唯一性
73.閱讀下列程序段,程序的輸出結(jié)果為()。
A.3B.5C.6D.8
74.設(shè)變量已正確定義并賦值,以下正確的表達式是()。
A.X=Y+z+5,++YB.int(15.8%5)C.X=Y*5=X+ZD.X=25%5.0
75.
76.
77.在數(shù)據(jù)庫系統(tǒng)中,所謂數(shù)據(jù)獨立性是指()。
A.數(shù)據(jù)與程序獨立存放
B.不同的數(shù)據(jù)被存放在不同的文件中
C.不同的數(shù)據(jù)只能被對應(yīng)的應(yīng)用程序所使用
D.以上三種說法都不對
78.下列敘述中正確的是()。
A.軟件測試應(yīng)該由程序開發(fā)者來完成
B.程序經(jīng)調(diào)試后一般不需要測試
C.軟件維護只包括對程序代碼的維護
D.以上三種說法都不對
79.
80.以下敘述中正確的是______。A.預(yù)處理命令行必須位于源文件的開頭
B.在源文件的一行上可以有多條預(yù)處理命令
C.宏名必須用大寫字母表示
D.宏替換不占用程序的運行時間
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:計算str所指字符串中含有t所指字符串的數(shù)目,并作為函數(shù)值返回。
請修改程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計題(1題)82.學(xué)生的記錄由學(xué)號和成績組成,M名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組stu中,請編寫函數(shù)proc,其功能是:按分?jǐn)?shù)的高低排列學(xué)生的記錄,高分在前。注意:部分源程序給出如下。請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。試題程序:#include<stdio.h>#defineMl6typedefstruct{charnum[l0];intS;}STREC:voidproc(STRECa[]){inti,j;STRECt;for(i=1;i<M;i++)/*用冒泡法來按從高到低排序*/for(j=0;j<M-1;j++)。if(a[j].s<a[j+1].s)//*按分?jǐn)?shù)的高低排列學(xué)生的記錄,高分在前*/{t=a[j];a[j]=a[j+1];a[j+1]=t;)}voidmain{STRECstu[M]={{"GA005",85),{"GA003",76},{"GA002",69},{"GA004",85),{"GA001",91),{"GA007",72),{"GA008",64),{"GA006",87),{"GA015",85),{"GA013",91),{"GA012",64),{¨GA014",91),{"GA011",66),{"GA017",64},{"GA018",64),{"GA016",72}};inti;proc(stu);printf("Thedataaftersorted:\n");for(i=0;i<M;i++){if(i%4==0)//每行輸出4個學(xué)生記錄printf("n");printf("%s%4d",stu[i],num,stu[i].s);}printf("\n");}
參考答案
1.A
2.AB)選項中打開一個已存在的文件并進行了寫操作后,原有文件中的全部數(shù)據(jù)不一定被覆蓋,也可以對源文件進行追加操作等。C)選項中在一個程序中當(dāng)對文件進行了寫操作后,不用先關(guān)閉該文件然后再打開,才能讀到第1個數(shù)據(jù),可以用fseek()函數(shù)進行重新定位即可。D)選項中,C語言中的文件可以進行隨機讀寫。
3.D是按位異或運算,其功能是參與運算的兩個數(shù),按位異或,如果兩個相應(yīng)位相同,結(jié)果為0,否則為1。接位異或運算滿足如下規(guī)則:①滿足交換律;②一個數(shù)與0異或的結(jié)果仍是原數(shù);③一個數(shù)與1異或的結(jié)果是原數(shù)按位取反。所以題干中,“y^x^y”等價于等價于“y^y^x”,等價于“0^x”,等價于x,即“z1=x”;“x^y^x”等價于“x^x^y”,等價于“0^y”,等價于y,即“z2=y”,輸出結(jié)果為:3,5。故本題答案為D選項。
4.C解析:位運算符“|”的作用是按位或,即兩個二進制數(shù)的相應(yīng)位中只要有一個為1,該位的結(jié)果值為1。最后以字符型輸出,98對應(yīng)的字符“b”
5.C解析:在格式化模型中,要事先根據(jù)應(yīng)用的需要,確定數(shù)據(jù)之間的邏輯關(guān)系,即先對數(shù)據(jù)進行結(jié)構(gòu)化。在關(guān)系模型中,不需要事先構(gòu)造數(shù)據(jù)的邏輯關(guān)系,只要將數(shù)據(jù)按照一定的關(guān)系存入計算機,也就是建立關(guān)系。所以選項A錯誤。對于一個表示關(guān)系的二維表,其最基本的要求是表中元組的每一個分量必須是不可分的數(shù)據(jù)項,即不允許表中再有表。所以,選項B、D說法是錯誤的。一個關(guān)系的屬性名表稱為關(guān)系模式,也就是二維表的表框架,相當(dāng)于記錄型。因此,選項C說法正確。
6.D解析:本題考查語句的基本構(gòu)成。選項A)中j=5后面少了一個分號:選項B)中少了“}”;選項C)不是一個完整的函數(shù)定義格式,一個完整的函數(shù)定義格式還包括一對花括號:選項D)正確,是一個空語句。
7.D
8.D整型變量ch使用八進制數(shù)020初始化,二進制數(shù)為10000,右移一位結(jié)果為1000,使用%d輸出十進制數(shù)為8。本題答案為D選項。
9.C解析:本題考查字符串比較函數(shù)strcmp()。調(diào)用形式:strcmp(s1,s2),其中s1、s2分別是字符串存儲區(qū)的首地址。函數(shù)功能:比較字符串str1和str2,當(dāng)str1<str2時,返回值為負數(shù);當(dāng)str1=str2時,返回0;當(dāng)str1>str2,返回值為正數(shù)(注意:不能使用關(guān)系運算符比較兩個字符串的大小)。
10.A表達式“ch-‘0’’將數(shù)字字符轉(zhuǎn)為數(shù)字。輸出的格式為%d。while循環(huán)從‘1’~‘8’,因此輸出的結(jié)果是12345678。故本題答案為A選項。
11.Astatic靜態(tài)變量只在聲明時初始化一次。mul()累乘,第一次init=1,init}=val,第二次init=1,val=2,第三次init=2,val=3,第四次init=6,val=4,第五層init=24,val=5,因此結(jié)果為l,2,6,24,120。故答案為A選項。
12.B2E3是實型常量的指數(shù)形式,選項A錯誤;2.0E3是實型常量的指數(shù)形式,選項B正確;‘\\025’是八進制表示的轉(zhuǎn)義字符,選項C錯誤;“a”是雙引號標(biāo)注的字符串常量,選項D錯誤。故本題答案為B選項。
13.C
14.A
15.A解析:while循環(huán)的執(zhí)行過程如下:(1)計算while后面圓括號中表達式的值.當(dāng)值為非0時,執(zhí)行步驟(2);當(dāng)值為0時,執(zhí)行步驟(4)。(2)執(zhí)行循環(huán)體一次。(3)轉(zhuǎn)去執(zhí)行步驟(1)。(4)退出循環(huán)。在選項A)中,表達式(ch=getchar())!='N'表示輸入的字符不等于N,如果這個條件表達式成立,則執(zhí)行循環(huán)體,打印輸出輸入的字符。如果這個條件表達式不成立,即輸入的字符等于N,則退出循環(huán).所以選項A)為正確答案。
16.D解析:C語言規(guī)定,字符常量在程序中要用單引號括起來。判斷c1是否為小寫字母的充要條件c1>='a'和c1<='z',用邏輯與(&&)來表示。A選項的這種形式在C語言中沒有,所以選項D)正確.
17.D本題考查字符串比較函數(shù)strcmp(s1,s2),若s1>s2,則返回1;若s1=s2,則返回0;若s1<s2,則返回-1。字符串依次比較的是它們字符的ASCIl碼值。
18.C
19.A
20.A在一個函數(shù)內(nèi)的復(fù)合語句中定義的變量在本復(fù)合語句塊范圍內(nèi)有效,選項A錯誤,其他選項正確。本題答案為A選項。
21.2121解析:外層switch語句后面括號里的x的值為1,所以執(zhí)行從casel:后面的語句開始執(zhí)行,而cascl:后面語句也為switch語句,這個switch語句后面括號里的y的值為0,所以從該switch語句里的case0:開始執(zhí)行即執(zhí)行a++,這時a的值變?yōu)?,執(zhí)行完畢,遇到break語句,退出內(nèi)層switch語句,又回到外層switch語句,繼續(xù)執(zhí)行casel:下面的語句即case2:執(zhí)行完畢后,a自加1變?yōu)?,b自加1變?yōu)?。所以最后輸出的a和b的值為21。
22.內(nèi)模式或物理模式或存儲模式內(nèi)模式或物理模式或存儲模式解析:一個數(shù)據(jù)庫只有一個內(nèi)模式,它是數(shù)據(jù)物理結(jié)構(gòu)和存儲方式的描述,是數(shù)據(jù)庫內(nèi)部的表示方法。例如,記錄的存儲方式是順序存儲、索引按照什么方式組織;數(shù)據(jù)是否壓縮存儲,是否加密等。
23.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數(shù)值的語句'k++;'\ue009。
24.4545解析:對于長度為N的線性表,在最壞情況下(即線性表中元素現(xiàn)在的順序與目標(biāo)順序正好相反),冒泡排序需要經(jīng)過N/2遍的從前往后的掃描和N/2遍的從后往前的掃描,需要的比較次數(shù)為N(N-1)/2。
25.共享性共享性解析:數(shù)據(jù)庫技術(shù)的主要特點有以下幾個方面:數(shù)據(jù)的集成性,數(shù)據(jù)的高共享性與低冗余性,數(shù)據(jù)的獨立性,數(shù)據(jù)統(tǒng)一管理與控制。
26.structlist*q
27.45994599解析:a、b、c的初值為3、4、5,t的初值為99,if語句的條件“b<a&&b<c”為假,不執(zhí)行“t=a;”,但緊隨其后的“a=c;c=t;”與此if語句無關(guān),仍被執(zhí)行。此時a的值為5,b的值仍是4,c的值為99。再執(zhí)行第二個if語句,由于此時“a<c&&b<c”為真,執(zhí)行“t=b;”,緊隨其后的“b=a;a=t;”與此if語句無關(guān),也被執(zhí)行。此時a的值為4,b的值是5,c的值為99。因此輸出結(jié)果是:4599。
28.00解析:對于一個unsignedshort來說,它能取的最大值是65535。這里給a賦值65536,已經(jīng)超出了它的取值范圍,這樣它的高位將被截掉,只把低位賦給它(全零)。所以a的值實際為0。
29.22解析:'\\13':表示八進制數(shù)13表示的ASCII字符,是一個字符,占一個字節(jié);而”\\12”是個字符串,除了八進制數(shù)12表示的ASCII字符占一個字節(jié)外,還有在字符串的末尾加上串結(jié)束標(biāo)志“'\\0'”,所以共有2個字節(jié)。
30.(y%2)==0(y%2)==0解析:因符合偶數(shù)的條件是對2取余為0,所以要描述y是偶數(shù)的表達式是(y%2)==0。
31.return0return1return0,return1解析:如果a能被i整除,則a是素數(shù),返回值為0。如果a不能被i整除,則a不是素數(shù),返回值為1。
32.物理獨立性數(shù)據(jù)獨立性是數(shù)據(jù)與程序間的互不依賴性,即數(shù)據(jù)庫中數(shù)據(jù)獨立于應(yīng)用程序而不依賴于應(yīng)用程序。也就是說,數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)與存取方式的改變不會影響應(yīng)用程序。數(shù)據(jù)獨立性一般分為物理獨立性與邏輯獨立性兩級。
33.1515解析:在函數(shù)fun(intx)中定義了局部靜態(tài)整形變量t,并初始化為0。這個函數(shù)的返回值為t+x。所以在主函數(shù)的for循環(huán)中,5次連續(xù)調(diào)用fun(i),實現(xiàn)了從1到5連續(xù)數(shù)字的相加運算。因而最后結(jié)果等于15。
34.double型或雙精度型double型或雙精度型解析:①先進行w*x的運算,先將字符型w轉(zhuǎn)換成整型,運算結(jié)果為整型;②再將w*x的結(jié)果與z相加,要先將第一步的整型轉(zhuǎn)換為double型,運算結(jié)果為double型;③最后將w*x+z的結(jié)果與y相減,要先將float型y轉(zhuǎn)換成double型,結(jié)果為double型。
35.模塊模塊解析:矩形表示的是模塊,箭頭表示的是模塊間的調(diào)用關(guān)系。用帶實心圓的箭頭表示傳遞的是控制信息,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。
36.21
37.66解析:本題第1個for循環(huán)是為數(shù)組arr元素賦初值。第2個for循環(huán)是分別用i=0,1,2,3給數(shù)組元素arr[0]、arr[1]、arr[2]、arr[3]賦值,再累加到變量k中,k=0+1+2+3=6。
38.str+strlen(p1)-1或str+strlen(str)-1殘str-1+strlen(str)或3tr-1+strlen(p1)t==0或!t或t=='\0'huiwen(str)str+strlen(p1)-1或str+strlen(str)-1殘str-1+strlen(str)或3tr-1+strlen(p1)\r\nt==0或!t或t=='\\0'\r\nhuiwen(str)解析:判斷回文教一般使用兩個指針或下標(biāo)變量分別從檢查串的第1個字符和最后一個字符開始相向移動,并比較兩者內(nèi)容是否相同,直到中間相遇一直相同則是回文數(shù),否則不是。函數(shù)huiwen中開始定義了兩個字符指針p1和p2,并讓p1指向str的開始位置,所以p2應(yīng)該指向str的尾部,即&str[strlen(sir)-1]或?qū)懗蓅tr+strlen(str)-1或者其他等價形式。然后使用一個循環(huán),循環(huán)str的長度的一半次數(shù),比較p1和p2的內(nèi)容,并分別遞增和遞減這兩個指針。若有不同,則讓標(biāo)志t為1,并跳出循環(huán)。所以最后一個if語句應(yīng)該為判斷標(biāo)志t是否為1,即應(yīng)該填t==0或者其他等價形式。在主函數(shù)中,應(yīng)該輸出huiwen()函數(shù)的返回結(jié)果,印最后一空應(yīng)該填huiwen(str)。
39.3*sizeof(double)或size(double)*3或24或3*8或8*33*sizeof(double)或size(double)*3或24或3*8或8*3解析:本題考核的知識點是malloc()函數(shù).該函數(shù)的調(diào)用格式是“malloc(n)”,作用是申請n個字符的存儲單元,并返回該存儲區(qū)的首地址,實際調(diào)用的時候可在前面加上“(類型說明符*)”,以轉(zhuǎn)換成需要的類型的地址.所以在此空格處應(yīng)該填寫3*sizeof(double)或size(double)*3或其他等價的表達式。
40.0i<=100;sum
41.A解析:本題考查如何通過地址來引用數(shù)組元素。通過地址來引用數(shù)組元素的方法有下列5種:①a[i][j];②*(a[i]+j);③*(*(a+i)+j);④*(a[i])[j];⑤*(&a[0][0]+3*i+j)。
42.A\r\n二分法又叫折半(對分)查找法,只適合于順序存儲的有序表(是指線性表中的元素按值非遞減排列)。二分法的基本思想是:設(shè)有序線性表的長度為n,被查元素為X,則二分查找的方法如下:
將X與線性表的中間項進行比較:若中間項的值等于x,則說明找到,查找結(jié)束;若x小于中間項的值,則在線性表的前半部分(即中間項以前的部分)以相同的方法進行查找;若X大于中間項的值,則在線性表的后半部分(即中間項以后的部分)以相同的方法進行查找、這個過程-直進行到查找成功或于表長度為0,(說明線性表中沒有這個元素為止)順序存儲的線性袁在計算機中-般用一個-維數(shù)組來表示,在數(shù)組中我們可以通過數(shù)組名和下標(biāo)來對數(shù)組中的任意一個元素進行訪問,而在鏈表(不管是有序還是無序)中,要對元素進行訪問必須從表頭結(jié)點開始,順著鏈條一個一個結(jié)點進行搜索,因此選項A正確
43.D解析:本題考查了軟件工程的基本概念。軟件工程包括3個要素,即方法、工具和過程。方法是完成軟件工程項目的技術(shù)手段;工具支持軟件的開發(fā)、管理和文檔生成;過程支持軟件開發(fā)的各個環(huán)節(jié)的控制和管理。
44.D
45.B解析:本題考查變量的定義方法。如果要一次進行多個變量的定義,則在它們之間要用逗號隔開,因此選項A)和D)錯誤。在選項C)中,變量c是一個浮點型指針,它只能指向一個浮點型數(shù)據(jù),不能指向指針變量b,故選項C)錯誤。
46.A解析:本題主要考查的知識點是大寫字母比它對應(yīng)的小寫字母ASCII碼值小32,并且字符可以看作整數(shù)進行算術(shù)運算等操作。
47.D解析:選項A中的VAR不是C語言中關(guān)鍵字,故選項A不正確:選項B中cher,應(yīng)改char,char才是C語言中的關(guān)鍵字,故選項B不正確;選項C中integer在C語言中簡化為int,這里應(yīng)該將integer改為int,int才是C語言中的關(guān)鍵字,選項D中default為C語言中默認(rèn)的關(guān)鍵字,故選項D正確。所以,4個選項中選項D符合題意。
48.C解析:本題的考查點是結(jié)構(gòu)體類型變量的定義。在選項C中,aa是—個結(jié)構(gòu)體變量,而不是結(jié)構(gòu)體名,所以structaatd1;是非法的。
49.C解析:本題主要對switch語句進行了考查。switch語句的執(zhí)行過程為:進入switch結(jié)構(gòu)后,對條件表達式進行運算,然后從上至下去找與條件表達式值相匹配的case,以此作為入口,執(zhí)行switch結(jié)構(gòu)中后面的各語句,直到遇到break語句,則跳出switch語句,如果各case都不匹配時,則執(zhí)行default后面的語句。本題中ch為字符'H',所以case'H'條件中的語句將被執(zhí)行,由于沒有break語句,所以case'G'后的語句也被執(zhí)行,由于同樣的缺少break語句,所以default后的語句也被執(zhí)行了。
50.B解析:字符串比較不能用兩個等號(==)來進行比較,應(yīng)使用stremp(s1,s2)函數(shù)來比較。strcmp(s1,s2)函數(shù)的功能是:當(dāng)字符串s1和s2相等時,返回值為0,因此,當(dāng)表達式!strcmp(s1,s2)==1時,條件成立,執(zhí)行后面的語句,輸出theyareEqua1。
51.C
52.D解析:a='ABCD'書寫錯誤,因為“=”左邊不能出現(xiàn)常量;數(shù)組名s是代表s數(shù)組首地址的地址常量,而不是變量;字符串只有在定義時維數(shù)可以省略。
53.B解析:scanf函數(shù)的第一個參數(shù)是格式控制字符串,該字符串中所出現(xiàn)的格式控制符必須與scanf函數(shù)的笫二個及其后面的參數(shù)一一對應(yīng).本題中四個選項的格式控制字符串都是'%d%s',其中包括兩個格式控制符%d和%s,它們分別表示輸入一個十進制整數(shù)和輸入一個字符串,其對應(yīng)的參數(shù)應(yīng)該分別為一個整型變量的地址和一個字符型數(shù)組的首地址。變量的地址可以通過對變量做取地址(&)運算來得到,而宇符型數(shù)組的首地址則可以直接通過數(shù)組名來得到。所以,4個選項中選項B符合題意。
54.B
55.B(27)B)解析:函數(shù)feof的功能是:測試fp所指的文件的位置是否已達到文件尾,如果達到文件尾,則函數(shù)返回非0值,否則返回0,表示文件尚未結(jié)束。
56.B解析:本題定義的函數(shù)f()是一個遞歸函數(shù)。它先交換兩個字符指針?biāo)傅膬?nèi)容,然后將第1個指針往后移動—位,第2個指針往前移動一位,如果第1個指針?biāo)竷?nèi)容不是字符串結(jié)束標(biāo)志,則遞歸調(diào)用自身。主函數(shù)中首先定義了—個字符數(shù)組sir[10]=“ahcdeft”然后定義了一個字符指針p=str+strlen(str)/2+1,即讓p指向str+4(或&str[4])的位置。然后調(diào)用f(p,p-2);,這使得p所指的str[4]及其以后的2個位置str[5]、str[6]中的內(nèi)容同p-2所指的str[p]及其以前的2個位置str[1]、str[0]中的內(nèi)容互相交換。即讓整個字符串逆序。所以本題應(yīng)該選擇B。
57.D解析:將—個字符常量放到—個字符變量中,實際上并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的ASCII碼值放到存儲單元中。
58.B解析:考查指向字符串的指針變量。在該題中,指針變量p指向的應(yīng)該是該字符串中的首地址,p+3指向的是字符串結(jié)束標(biāo)志'\\0'的地址,因而。(p+3)的值為0。
59.C題目中需要求出程序的輸出值i,j,其中i的值由sizeof決定,j的值由strlen函數(shù)決定。
sizeof是C語言的一種運算符,以字節(jié)的形式給出操作數(shù)的存儲空間的大小。sizeof的操作對象可以是具體的數(shù)據(jù)類型,也可以是變量。題目中的操作數(shù)為數(shù)組名,利用sizeof可計算出數(shù)組所占用內(nèi)存的字節(jié)數(shù),題目中數(shù)組類型為char,大小為7,故該數(shù)組占用的內(nèi)存數(shù)為7。
strlen函數(shù)則是計算一段字符串的長度,可以從整個字符串的頭部開始計算,也可以從字符串的中間開始計算,當(dāng)碰到第一個字符串結(jié)束符“\\0”,則停止計算,返回當(dāng)前的計算值。題目中在前兩個字符之后就出現(xiàn)了結(jié)束符“\\0”,故strlen函數(shù)的值為2。
60.B解析:
溫馨提示
- 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 辦公樓公共設(shè)施保潔服務(wù)協(xié)議2025
- 美食類自媒體賬號小李大口吃短視頻運營
- 什么叫做巖土工程
- 核酸檢培訓(xùn)測試題及答案
- 2025年南陽人才引進真題及答案
- 膿毒癥在急診室的快速處理2026
- 2025年九上開學(xué)英語試卷及答案
- 租賃燒烤餐桌合同范本
- 技能大賽全部試題及答案
- 山東藝考聯(lián)考真題及答案
- GA 2113-2023警服女禮服
- 國開機考答案-鋼結(jié)構(gòu)(本)(閉卷)
- 紀(jì)委談話筆錄模板經(jīng)典
- 消防安全制度和操作規(guī)程
- 叉車安全技術(shù)交底
- 國家預(yù)算實驗報告
- 工業(yè)園區(qū)綜合能源智能管理平臺建設(shè)方案合集
- 附件1:中國聯(lián)通動環(huán)監(jiān)控系統(tǒng)B接口技術(shù)規(guī)范(V3.0)
- 正弦函數(shù)、余弦函數(shù)的圖象 說課課件
- 閉合性顱腦損傷病人護理查房
- 《你看起來好像很好吃》繪本課件
評論
0/150
提交評論