版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
2021年甘肅省武威市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.C語言中不合法的字符串常量是
A.\121B.'Y'C.\n\nD.ABCD\x6d
2.若以“a+”方式打開一個已存在的文件,則下列敘述正確的是()。
A.文件打開時,原有文件內(nèi)容不被刪除,位置指針移到文件末尾,可以進行添加或讀操作
B.文件打開時,原有文件內(nèi)容不被刪除,只能進行讀操作
C.文件打開時,原有文件內(nèi)容被刪除,只能進行寫操作
D.以上三種說法都不正確
3.以下與數(shù)學(xué)表達式“0<x<5且x≠2”不等價的C語言邏輯表達式是()。
A.(0<x<5)&&(x!=2)
B.0<x&&x<5&&x!=2
C.x>0&&x<5&&x!=2
D.(x>0&&x<2)||(x>2&&x<5)
4.最壞情況下時間復(fù)雜度不是n(n-1)/2的排序算法是()
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
5.在最壞情況下比較次數(shù)相同的是()。A.冒泡排序與快速排序B.簡單插入排序與希爾排序C.簡單選擇排序與堆排序D.快速排序與希爾排序
6.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.11B.43C.57D.53
7.設(shè)a=l,b=2,c=3,d=4,則表達式:“a<b?a:b<b?a:c<d?a:d”的結(jié)果為()。A.4B.3C.2D.1
8.有以下程序:#include<stdio.h>main(){chars[]=“012xy\08s34f4w2”;inti,n=0;for(i=0;s[i]|=0;i++) if(s[i]>=‘0’&&s[i]<=“9”)n++;printf(“%d\n”,n);}程序運行后的輸出結(jié)果是()。
A.7B.0C.3D.8
9.有以下程序:#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中將無確定值
10.右兩個關(guān)系R和S如下:
則由關(guān)系R得到關(guān)系S的操作是()。A.自然連接B.并C.選擇D.投影
11.下列關(guān)于數(shù)據(jù)結(jié)構(gòu)的敘述中,正確的是()。
A.數(shù)組是同類型值的集合
B.遞歸算法的程序結(jié)構(gòu)比迭代算法的程序結(jié)構(gòu)更為精煉
C.樹是一種線性結(jié)構(gòu)
D.用一維數(shù)組存儲二叉樹,總是以先序遍歷的順序存儲各結(jié)點
12.依次讀入數(shù)據(jù)元素序列{a,b,c,d,e,f,g}進棧,元素進?;虺鰲m樞蚴俏粗?,下列序列中,不可能成為??諘r彈出的元素構(gòu)成序列的有()
A.{d,e,c,f,b,g,a}
B.{f,e,g,d,a,c,b}
C.{e,f,d,g,c,b,a}
D.{c,d,b,e,f,a,g}
13.要求通過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);
14.下列關(guān)于標(biāo)識符的說法中錯誤的是
A.合法的標(biāo)識符是由字母、數(shù)字和下劃線組成
B.C語言的標(biāo)識符中,大寫字母和小寫字母被認(rèn)為是兩個不同的字符
C.C語言的標(biāo)識符可以分為三類,即關(guān)鍵字、預(yù)定義標(biāo)識符和用戶標(biāo)識符
D.用戶標(biāo)識符與關(guān)鍵字不同時,程序在執(zhí)行時將給出出錯信息
15.設(shè)某無向圖中有n個頂點e條邊,則建立該圖鄰接表的時間復(fù)雜度為()。
A.O(n+e)B.O(n^2)C.O(ne)D.O(n^3)
16.下面程序中算法的時間復(fù)雜度是()A.O(n)B.O(n^2)C.O(logn)D.O(n*logn)
17.若已知一個棧的進棧序列是1,2,3,,n,其輸出序列為p1,p2,p3,?,pn,若p1=n,則pi為()。
A.iB.n-iC.n-i+1D.不確定
18.設(shè)有以下語句:inta=1,b=2,c;c=a^(b<<2);執(zhí)行后,c的值為()。A.6B.7C.8D.9
19.
20.有以下程序:#include<stdio.h>main(){inta[3][3]={{1,3,5,},{7,9,11,},{13,15,17}};int(*p)[3]=a,i,j,n=0;for(i=0;i<3;i++)for(j=0;j<2;j++)n+=*(*(p+i)+j);printf(“%d\n”,n);}程序運行后的輸出結(jié)果是()。
A.54B.60C.36D.48
二、2.填空題(20題)21.以下程序運行后的輸出結(jié)果是______。
main()
{
inta,b,c;
a=25;
b=025;
c=0x25;
printf("%d%d%d\n",a,b,C);
}
22.以下程序的功能是:利用指針指向三個整型變量,并通過指針運算找出三個數(shù)中的最大值,輸出到屏幕上。請?zhí)羁铡?/p>
main()
{intx,y,z,max,*px,*py,*pz,*pmax;
scanf("%d%d%d",&x,&y,&z);
px=&x;py=&y;pz=&z;pmax=&max;
【】;
if(*pmax<*py)*pmax=*py;
if(*pmax<*pz)*pmax=*pz;
printf("max=%d\n",max);}
23.以下主程序運行后的輸出結(jié)果是【】。
main()
{inti,m=0,n=0,k=0;
for(i=9;i<=ii;i++)
switch(i/10)
{case0:m++;n++;break;
case10:n++;break;
default:k++;n++;
}
printf("%d%d%d\n",m,n,k);
}
24.以下程序運行后的輸出結(jié)果是【】。
main()
{chara[]="Language",b[]="Pragrame";
char*p1,*p2;intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))
printf("%c",*(p1+k));
}
25.以下程序的功能是:將輸入的正整數(shù)按逆序輸出。例如:若輸入135則輸出531。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{intn,s;
printf("Enteranumber:");scanf("%d",&n);
printf("Output:");
do
{s=n%10;printf("%d",s);[];}
while(n!=0);
printf("\n');
}
26.若輸入3、4、5,程序的輸出結(jié)果為【】。
#include"math.h"
main()
{floata,b,c,s,area;
scanf("%f,%f,%f",&a,&b,&c);
s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f",a,b,c,s);
printf("area=%7.2f\n",area);
}
27.以下程序運行結(jié)果是【】。
#include<stdio.h>
longfunc(intx)
{longp;
if(x==0‖x==1)return(2);
p=x*func(x-1);
return(p);}
main()
{printf("%d\n",func(4));}
28.按照“先進先出”的原則組織數(shù)據(jù)的結(jié)構(gòu)是______。
29.下列程序的運行結(jié)果是______。
#include<string.h>
char*ss(char*s)
{returns+strlen(s)/2;}
main()
{char*p,*str="abcdefgh";
p=ss(str);printf('%s\n",p);
}
30.下列程序的輸出結(jié)果是______。
#include<stdio.h>
main()
{intx=10,y=10,i;
for(i=0;x>8;y=++i)
printf("%d%d",x--,y);
}
31.軟件開發(fā)環(huán)境是全面支持軟件開發(fā)全過程的______的集合。
32.以下程序運行后的輸出結(jié)果是______。
fun(intx)
{if(x/2>0)fun(x/2);
printf("%d",x);
}
main()
{fun(6);}
33.mystrlen函數(shù)的功能是計算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>
intmystrlen(char*str)
{inti;
for(i=0;【】!='\0';i++);
return(i);}
34.在軟件生命周期中,【】階段是花費最多、持續(xù)時間最長的階段。
35.設(shè)有說明;
structDATE{intyear;intmonth;intday;};
請寫出一條定義語句,該語句定義d為上述結(jié)構(gòu)體類型變量,并同時為其成員year、month、day依次賦初值2006、10、1:【】。
36.下列程序段的輸出結(jié)果是______。
intn='c';
switch(n++)
{default:printf("error");break;
case'a':printf("good");break;
case'c':printf("morning");
case'd':printf("class");
}
37.線性表的存儲結(jié)構(gòu)主要分為順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)。隊列是一種特殊的線性表,循環(huán)隊列是隊列的【】存儲結(jié)構(gòu)。
38.函數(shù)delete(s,i,n)的作用是從字符串s中刪除從第i個字符開始的n個字符,請?zhí)羁铡?/p>
voiddelete(chars[],inti,intn)
{intj,k,legth=0;
while(s[length])
【】;
-i;
j=i;
}
if(【】)
{k=i+n;
if(i+n<length)
while(k<length)
s[j++]=s[k++];
s[j]='\0'
}
39.以下程序運行后的輸出結(jié)果是【】。
#include<stdio,h>
#include<string,h>
main()
{charch[]="abc".,x[3][4]:inti:
for(i=0;i<3:i++)strcpy(x[i],ch):
for(i=0;i<3:i++)printf("%s",&x[i][i]);
printf("\n")
}
40.數(shù)據(jù)庫系統(tǒng)的三級模式分別為______模式、內(nèi)部級模式與外部級模式。
三、1.選擇題(20題)41.能將高級語言程序轉(zhuǎn)換成目標(biāo)語言程序的是______。
A.調(diào)試程序B.解釋程序C.編譯程序D.編輯程序
42.已知大寫字母A的ASCII碼是65,小寫字母a的ASCII碼是97。下列不能將變量c中的大寫字母轉(zhuǎn)換為對應(yīng)小寫字母的語句是()。
A.c=(c-'A')%26+'a'
B.c=c+32
C.c=C-'A'+'a'
D.c=('A'+C)%26-'a'
43.下列程序中的for循環(huán)執(zhí)行的次當(dāng)次數(shù)是______。#defineN2#defineMN+i#defineNUM2*M+l#main(){inti;for(i=1;i<=NUM;i++)printf("%d\n",i);}
A.5B.6C.7D.8
44.線性表L=(a1,a2,a3,…ai,…an),下列說法正確的是()
A.每個元素都有一個直接前件和直接后件
B.線性表中至少要有一個元素
C.表中諸元素的排列順序必須是由小到大或由大到小
D.除第一個元素和最后一個元素外,其余每個元素都有一個且只有一個直接前件和直接后件
45.有如下說明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
46.下列程序的運行結(jié)果為#include<stdio.h>voldabc(char*str){inta,b;for(a=b=0;str[a]!='\0';a++)if(str[a]!='c')str[b++]=str[a];str[b]='\0';}voidmain(){charstr[]="abcdef";abc(str);printf("str[]=%s",str);}
A.str[]=abdefB.str[]=abcdefC.str[]=aD.str[]=ab
47.下列變量聲明合法的是()。
A.shorta=1.4e-1;
B.doubleb=1+3e2.8;
C.longdo=0xfdaL;
D.float2_aaa=1e-3;
48.以下程序的輸出結(jié)果是()enumweekday{sun=7,mon=1,tue,wed,thu,fri,sat};main(){enumweekdayworkday,week_end;inti,a[8];workday=tue;weekend=sun;pritnf("\ntuesday=%dsunday=%d",wotkday,week_end);workday=sun+tue;week_end=(enumweekday)3;printf("tuesday=%dsunday=%d",workdayweek_end);a[sun]=sun;a[mon]=mona[tue]=tue;a[wed]=wed;a[thu]=thu;a[fri]=fr;a[sat]=sat;for(i=1;i<7;i++)printf("%d",a[i]);}
A.tuesday=2sunday=7;tuesday=2sunday=7;1234567
B.tuesday=2sunday=7;tuesday=9sunday=3;1234567
C.tuesday=0sunday=7;tuesday=2sunday=3;1234567
D.tuesday=1sunday=2;tuesday=3sunday=4;1234567
49.有以下程序structSTU{charnum[10];floatscore[3];};main(){stmctSTUs[3]={{“20021”,90,95,85},{“20022”,95,80,75},{“20023”,100,95,90}},*p=s;inti;floatsum=0;for(i=0;i<3;i++)sum=sum+p->score[i];printf(“%6.2f\n”,sum);}程序運行后的輸出結(jié)果是
A.260B.270C.280D.285
50.有以下程序
#include<stdio.h>
voidfun(int*a,intn)/*fun函數(shù)的功能是將a所指數(shù)組元素從大到小排序*/
{intt,i,j;
for(i=0;i<n-1;j++)
for(j=i+1;j<n;j++)
if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}
}
main()
{intc[10]={1,2,3,4,5,6,7,8,9,0},i;
fun(c+4,6);
for(i=0;i<10;i++)printf("%d,",c[i]);
printf("\n");
}
程序的運行結(jié)果是
A.1,2,3,4,5,6,7,8,9,0,
B.0,9,8,7,6,5,1,2,3,4,
C.0,9,8,7,6,5,4,3,2,1,
D.1,2,3,4,9,8,7,6,5,0,
51.有以下函數(shù)定義:intfun(doublea,doubleB){returna*b;}若以下選項中所用變量都已正確定義并賦值,錯誤的函數(shù)調(diào)用是()。
A.if(fun(x,y)){……}
B.z=fun(fun(x,y),fun(x,y));
C.z=fun(fun(x,y)x,y);
D.fun(x,y);
52.下面程序的輸出是______。main(){intk=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}
A.k=11,k=12,k=11
B.k=11,k=13,k=13
C.k=11,k=013,k=0xb
D.k=11,k=13,k=B
53.已有定義:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判斷c中的字符是否為大寫字母的表達式是
A.isupper?
B.′A′<=c<=′Z′
C.′A′<=c&&c<=′Z′
D.c<=(′z′-32)&&(′a′-32)<=c
54.下面程序的輸出結(jié)果是()main(){inty=9;for(;y>0;y--)if(y%3==0){printf("%d",--y);continue;}}
A.741B.852C.963D.875421
55.下列程序的輸出結(jié)果是______。main(){inti,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=ifor(i=0;i<3;i++)p[i]=a[i*(i+1)];for(i=0;i<3;i++)k+=p[i]*2;printf("%d\n",k);}
A.20B.21C.22D.23
56.下面宏定義正確的是()
A.#defineSa*b
B.#definePI3.14;
C.#definemax(a,b)((a)>(b)?(a);(b))
D.#defines(x)(x)*(x);
57.下列描述中正確的是()。
A.程序就是軟件
B.軟件開發(fā)不受計算機系統(tǒng)的限制
C.軟件既是邏輯實體,又是物理實體
D.軟件是程序、數(shù)據(jù)與相關(guān)文檔的集合
58.以下不能正確計算代數(shù)式的值的C語言表達式是()。
A.1/3*sin(1/2)*sin(1/2)
B.SlH(0.5)*sin(0.5)/3
C.pow(sin(0.5),2)/3
D.1/3.0*pow(sin(1.0/2),2)
59.若有以下定義和語句:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則不能表示a數(shù)組元素的表達式是______。
A.*pB.a[10]C.*aD.a[p-a]
60.有以下程序
#include<stdio.h>
voidfun(int*a,intn)/*fun函數(shù)的功能是將a所指數(shù)組元素從大到小排序*/
{intt,i,j;
for(i=0;i<n-1;j++)
for(j=i+1;j<n;j++)
if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}
}
main()
{intc[10]={1,2,3,4,5,6,7,8,9,0},i;
fun(c+4,6);
for(i=0;i<10;i++)printf("%d,",c[i]);
printf("\n");
}
程序的運行結(jié)果是
A.1,2,3,4,5,6,7,8,9,0,
B.0,9,8,7,6,5,1,2,3,4,
C.0,9,8,7,6,5,4,3,2,1,
D.1,2,3,4,9,8,7,6,5,0,
四、選擇題(20題)61.若執(zhí)行以下程序時從鍵盤上輸入9,則輸出結(jié)果是()。main(){intn;scanf(”%d”,&n);if(n++<10)printf(”/%d\n”,n);elseprintf(”%d\n”,n--);}A.11B.10C.9D.8
62.若a為int類型,且其值為3,則執(zhí)行完表達式a+=a-=a*a后,a的值是()。
A.-3B.9C.-12D.6
63.
64.有三個關(guān)系R、S和T如下:
則由關(guān)系R和s得到關(guān)系T的操作是()。
A.自然連接B.差C.交D.并
65.
有以下程序
#include<stdio.h>
intfun(chars[])
{intn=0;
while(*s<=9&&*s>=0){n=10*n+*s-o;s++;)
return(n);
}
main
{chars[10]={6,1,*,4,*,9,*,0,*);
printf("%d",fun(s));
}
程序運行的結(jié)果是()。
A.9B.61490C.61D.5
66.下列敘述中正確的是()。
A.一個邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲結(jié)構(gòu)
B.數(shù)據(jù)的邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲結(jié)構(gòu)屬于非線性結(jié)構(gòu)
C.一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)不影響數(shù)據(jù)處理的效率
D.一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)影響數(shù)據(jù)處理的效率
67.
68.已知大寫字母A的ASCII碼是65,小寫字母a的ACSII碼是97。下列能將變量C中的大寫字母轉(zhuǎn)換為對應(yīng)小寫字母的語句是()。
A.c=(c-'A')%26+'A'B.c=c+32C.c=c-'A'+'A'D.c=('A'+C)%26-'a'
69.有以下程序
structs
{intx,y;}data[2]={10,100,20,200};
main()
{structs*p=data;
printf("%d\n",++(p->x));
}
程序運行后的輸出結(jié)果是()
A.10B.11C.20D.21
70.若有說明:inta[3][4]={0};,則下面正確的敘述是
A.只初始化了第一個元素,即a[0][0]可得到初值0
B.此初始化語句不正確
C.?dāng)?shù)組a中各元素都可得到初值,但其值不一定為0
D.?dāng)?shù)組a中每個元素均可得到初值0
71.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
72.
73.(10)下列模式中,能夠給出數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法的是()
A.內(nèi)模式
B.外模式
C.概念模式
D.邏輯模式
74.有以下程序:main{inta=1,b=3,C=5,*P;int*p1=&a,*p2=&b,*p3=&c;*p=*p1*(*p2);}執(zhí)行后的輸出結(jié)果是()。A.1B.2C.3D.4
75.常采用的兩種存儲結(jié)構(gòu)是()。
A.順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)B.散列方法和索引方式C.鏈表存儲結(jié)構(gòu)和數(shù)組D.線性存儲結(jié)構(gòu)和非線性存儲結(jié)構(gòu)
76.
77.
78.
79.已知inti=10;表達式“20-0<=i<=9”的值是()。
A.0B.1C.19D.20
80.
設(shè)有下列程序段:
charstr[]="HelloWorld":
char*plr;
ptr=str:
執(zhí)行上面的程序段后,*(ptr+10)的值為()。
A.\0B.0C.不確定的值D.0的地址
五、程序改錯題(1題)81.下列給定程序、中,函數(shù)proc()的功能是:先將字符串s中的字符按順序存放到t中,然后把s中的字符按正序連接到t的后面。例如,當(dāng)s中的字符串為WXYZ時,則t中的字符串應(yīng)為WXYZWXYZ。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是將ss所指字符串中所有下標(biāo)為奇數(shù)的字母轉(zhuǎn)換為大寫(若該位置上不是字母,則不轉(zhuǎn)換)。例如,若輸入“abc4EFg”,則應(yīng)輸出“aBc4EFg”。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*ss){}voidmain(void){ chartt[51]; printf(“\nPleaseenterancharacterstringwithin50characters:\n”); gets(tt); printf(“\n\nAfterchanging,thestring\n%s”,tt); fun(tt); printf(“\nbecomes\n%s”,tt);}
參考答案
1.B解析:字符串常量是由雙引號括起來的一串字符,其中的雙引號不可缺少。由此可知,選項A)、C)、D)都是含法的字符串常量,而選B)是一個字符常量。
2.A解析:本題考查文件使用方式標(biāo)識符,以“a+”方式打開一個已存在的文件,則表示保留文件中原有的數(shù)據(jù),文件的位置指針在文件末尾,此時,可以進行追加或讀操作。
3.A在C語言里不能直接表達“0<x<5”,需要分步驟來實現(xiàn),即使用“x>0&&x<5”來描述。在C語言里,“0<x<5”屬于一個邏輯運算表達式,可以理解為“(0<x)<5”,因此選項A錯誤。故本題答案為A選項。
4.D
5.A冒泡排序、快速排序、簡單插入排序、簡單選擇排序在最壞情況下比較次數(shù)均為n(n-1)/2,堆排序在最壞情況下比較次數(shù)為nlog2n,希爾排序在最壞情況下需要比較的次數(shù)是nr(1﹤r﹤2)。本題答案為A選項。
6.D函數(shù)f是一個遞歸函數(shù)。當(dāng)x>=2時,遞歸調(diào)用自身,返回值為x*f(x-l)+(x-l)*f(x-2);3x<2時,返回值為1。main函數(shù)中,調(diào)用函數(shù)f傳入4,所以y的值是f(4)。f(4)等價于4*f(3)+3*f(2);f(3)等價于3*f(2)+2*f(1);f(2)等價于2*f(1)+1*f(0);f(0)、f(1)等價于1。綜上:f(2)等于3,f(3)等于11,f(4)等于53。本題答案為D選項。
7.D在三目運算符中,優(yōu)先級相同,按從右到左的結(jié)合性計算,a<b?a:(c<d?a:d)c<d成立所以取值a,同理可得,選擇D選項
8.C根據(jù)題意,要求統(tǒng)計字符數(shù)組s中阿拉伯?dāng)?shù)字的個數(shù)?!癱hars[]=“012xy\\08s34f4w2”;”,其元素是字符型。字符‘0的ASCII值是48,字符‘\\0’的ASCII值是0,因此可以計算出‘\\0’之前阿拉伯?dāng)?shù)字的個數(shù),由字符數(shù)組s可知,有3個阿拉伯?dāng)?shù)字。故本題答案為C選項。
9.A解析:函數(shù)getchar()的作用是從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個字符,且只能接受一個字符(回車符也是一個字符)。故本題中變量c1被賦予字符a,c2被賦予回車符。
10.C選擇:是在數(shù)據(jù)表中給予一定的條件進行篩選數(shù)據(jù)。投影:是把表中的某幾個屬性的數(shù)據(jù)選擇出來。連接:有自然連接、外連接,內(nèi)連接等,連接主要用于多表之間的數(shù)據(jù)查詢。并:與數(shù)學(xué)中的并是一樣的。兩張表進行并操作,要求它們的屬性個數(shù)相同并且需要相容。
11.B
12.B
13.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)為正確答案。
14.D解析:用戶標(biāo)識符與關(guān)鍵字相同時,程序在編譯過程中將給出出錯信息。注意:選項D)應(yīng)該改為用戶標(biāo)識符與關(guān)鍵字相同,程序在編譯時將給出出錯信息。注意:合法的標(biāo)識符第一個字符必須為字母或下劃線。
15.A
16.C
17.C
18.D本題考查兩個知識點,按位異或左移把b左移2位化成二進制c=a(b<<2)=a^(000010<<2)=a^001000=0000001^O01000=9,故選擇D。
19.D
20.D題目中,for循環(huán)的作用是求數(shù)組各行前兩列的數(shù)字之和。已知“*(*(P+i)+j)=p[i][j]”,則變量n=1+3+7+9+13+15=48。故本題答案為D選項。
21.252137252137解析:本題中先定義了整型變量a、b和c,然后分別給賦值a為25,b為八進制的025,c為十六進制0x25。然后調(diào)用pruntf()函數(shù)將a、b和c分別用十進制輸出,且中間用空格隔開,八進制025轉(zhuǎn)換為十進制的值為21,十六進制的0x25轉(zhuǎn)換為十進制的值為37,故最后的輸出結(jié)果為252137。
22.*pmax=*px*pmax=*px解析:首先將變量x的值放到max中,然后依次和變量y、z進行比較。若有比max大的數(shù),將該數(shù)存放到max中,這樣最后在max中的值就是x、y、z中的最大值。
23.132132解析:本題for循環(huán)語句的執(zhí)行過程為:
第一次循環(huán):i=9,9/10=0,執(zhí)行m++、n++得m=1、n=1、k=0;
第二次循環(huán):i=10,10/10=1,執(zhí)行k++、n++得m=1、n=2、k=1;
第三次循環(huán):i=11,11/10=1,執(zhí)行k++、n++得m=1、n=3、k=2;
即執(zhí)行完for循環(huán)后m=1、n=3、k=2。
24.gaegae解析:主函數(shù)中定義了字符數(shù)組a和b,其初值分別為Language和Programe,然后定義了兩個指針變量p1和p2,并讓它們指向a和b。通過分析可知下面的for循環(huán)中,每循環(huán)一次就將p1+k和p2+k所指向的字符進行比較,如果相等,輸出該字符,循環(huán)共執(zhí)行8次,顯然Language和Programe中只有字符gae相等,所以最后轄出為gae。
25.n/=10或n=n/10或n=(n-s)/10或n=(n-n%10)/10n/=10或n=n/10或n=(n-s)/10或n=(n-n%10)/10解析:根據(jù)s=n%10可知:此操作可以將輸入的數(shù)據(jù)n的最后—位賦給s,根據(jù)題目的要求是要將輸入的數(shù)據(jù)逆序輸出,現(xiàn)在已經(jīng)將原數(shù)據(jù)的個位輸出,在其后如果執(zhí)行n/=10司將原數(shù)據(jù)的個位數(shù)去掉,滿足do....while的條件繼續(xù)s=n%10操作,此時可求出十位上的數(shù)進行輸出,繼續(xù)執(zhí)行n/=10操作,與上相同最后將百位上的數(shù)進行輸出,所以該題答案為:\u3000n/=10。
26.a=3.00b=4.00c=5.00s=6.00area=6.00
27.4848解析:本題主要考查的是函數(shù)的遞歸調(diào)用,遞歸的終止條件是x==0或x==1,然后用已知值逐步遞推向上求未知值,直到得到最終的結(jié)果。
func(4)=4*func(3);
func(3)=3*func(2);
func(2)=2*func(1);
func(1)=2;
所以func(2)=2*2=4;
func(3)=3*4=12;
fune(4)=4*12=48。
28.隊列隊列解析:隊列是一種特殊的線性表,只允許在表的一端插入元素,在表的另一端刪除元素,插入元素的一端叫做“隊尾”,刪除元素的一端叫做“隊頭”,先插入的元素先被刪除,是按先進先出的原則組織數(shù)據(jù)的。
29.efghefgh解析:本題考核的知識點是通過指針引用字符串.函數(shù)“的作用是讓形參指針s指向該字符串的右半部分.主函數(shù)中首先定義了一個字符型指針變量p和字符型指針str;并初始化為“abcdefgh”,然后調(diào)用函數(shù)ss,將實參str傳給形參s,因此可知該函數(shù)返回的指針,指向str所指的字符串“abcdefgh”的右半部分,即指向字符串“efgh”,所以最后輸出指針p(指針p的值為調(diào)用函數(shù)ss(sD)的返回值)所指向的字符串為“efgh。
30.101091101091解析:for(表達式1;表達式2:表達式3)語句的功能是:首先計算表達式1的值,然后檢測表達式2的值,若其值為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢后,再計算表達式3的值。然后再檢測表達式2的值是否為真,若為真,繼續(xù)執(zhí)行循環(huán)體語句,若為假,則退出循環(huán):第1次循環(huán)x>8成立,輸出x=10,y=10后,x的值減1,i=1,執(zhí)行y=++i操作,y的值變?yōu)?;判斷條件還成立,輸出x=9,y=1,然后x的值減1,循環(huán)條件不成立,則退出循環(huán)。
31.軟件工具軟件工具解析:軟件開發(fā)環(huán)境是各類軟件開發(fā)工具的集合體。
32.136136解析:本題考核的知識點是函數(shù)遞歸。主函數(shù)調(diào)用函數(shù)fun(6),由于6/2>0為真遞歸調(diào)用fun(3),接著遞歸調(diào)用fun(1),輸出1,返回上一層輸出3,在返回上一層輸出6。故空格處應(yīng)該填136。
33.*(str+i)或str[i]*(str+i)或str[i]解析:str是指針變量,它指向字符型數(shù)據(jù),在循環(huán)過程中,可以用*(str+i)來訪問字符串中的第i個元素,判斷是否是結(jié)束標(biāo)志,如果不是,i=i+1,繼續(xù)取下一個元素進行判斷,直到*(str+i)的值為'\\0'為止,也可以用下標(biāo)的方式引用字符,如*(str+i)相當(dāng)于str[i]。
34.維護維護
35.structDATEd={2006101};structDATEd={2006,10,1};解析:在C語言中,結(jié)構(gòu)體變量定義語句的一般形式如下:
struct<結(jié)構(gòu)體名><結(jié)構(gòu)體對象名>[=<初始化列表>];
在本題中,<結(jié)構(gòu)體名>是DATE,<結(jié)構(gòu)體對象名>題目要求為d,而可有可無的<初始化列表>本題要求為{2006,10,1}。故應(yīng)該填structDATEd={2006,10,1};。
36.morningclassmorningclass解析:本題考查了兩個知識點:①“++,--”運算后綴形式是先使用變量原來的值,使用完后再使其增1或減1;②在switch語句中,當(dāng)n='c'時,執(zhí)行“case'c'”,輸出morning;因為此句中沒有break語句,因此接著執(zhí)行“case'd':”,輸出class,最終輸出結(jié)果為morningclass。
37.順序順序解析:線性表的存儲結(jié)構(gòu)主要分為順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)。當(dāng)隊列用鏈?zhǔn)酱鎯Y(jié)構(gòu)實現(xiàn)時,就稱為鏈隊列;當(dāng)隊列用順序存儲結(jié)構(gòu)實現(xiàn)時,就稱為循環(huán)表。因此,本題劃線處應(yīng)填入“順序”。
38.length++i<lengthlength++\r\ni<length解析:第—個循環(huán)極有可能是計算串的長度,在i<=length時字符才被刪除,被刪除的是從第i個到第i+n或最后一個間的所有字符。刪除前,應(yīng)判斷i<=length。由于已經(jīng)進行了-i運算,故實際應(yīng)填入i<length。
39.abcbccabcbcc解析:for循環(huán)用strcpy函數(shù)將字符數(shù)組ch的值'abc',分別復(fù)制給二維數(shù)組x的每一行,然后通過for循環(huán)先后打印出以x[0][0],x[1][1],x[2][2]開頭的字符串'abe','bc','c',所以輸出結(jié)果為:abcbcc。
40.概念(或概念級)概念(或概念級)
41.C解析:用高級語言編寫的程序稱為“源程序”,而計算機只能識別和執(zhí)行由O和1組成的二進指令,所以高級語言必須先用—種稱為“編譯程序”的軟件,把源程序翻譯成二進制形式的“目標(biāo)程序”。
42.D解析:由題意可知,小寫字符a和大寫字符A的ASCII代碼相差為32,所以選項C)能將大寫字符c的ASCII代碼轉(zhuǎn)換為小寫字符c的ASCⅡ代碼;選項A)和C)左側(cè)的表達式都是大寫字符c與大寫字符A的差與'a'的ASCII代碼的和就是小寫字符c的ASCII代碼。而選項D)中應(yīng)該是加上'a',而不是減去'a'。
43.B
44.D解析:線性表可以為空表,排除選項B。第一個元素沒有直接前件,最后一個元素沒有直接后件,故排除選項A。線性表的定義中,元素的排列沒有規(guī)定大小順序,故選項C也有誤,只有D項是正確的。
45.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)來引用。因此,當(dāng)指針變量p指向a數(shù)組的起始地址時,若0≤i<10,則數(shù)組元素a[i]可以用*(p+i)來表示。
46.A解析:本題考查了用字符指針引用字符數(shù)組中的字符及對字符的操作。函數(shù)abc()的for語句執(zhí)行過程是:叢字符指針str所指向的字符數(shù)組的第一個元素開始,逐一判斷字符是否為'c',若不是就執(zhí)行一次數(shù)組元素的賦值過程,若字符為'c'就不執(zhí)行,所以答案為A)。
47.A解析:解答本題需了解3個知識點:①標(biāo)識符是由字母、數(shù)字或下畫線組成,并且它的第一個字符必須是字母或者下畫線;②do是C語言中的一個關(guān)鍵字,不能再用做變量名和函數(shù)名;③C語言規(guī)定指數(shù)形式的實型常量e或E后面的指數(shù)必須是整數(shù)。
48.B
49.B解析:程序中首先定義了一個結(jié)構(gòu)體,其成員為一字符數(shù)組和一浮點型數(shù)組。在main()首先定義了一個結(jié)構(gòu)體數(shù)組并初始化。接下來在for循環(huán)中遍歷了結(jié)構(gòu)體數(shù)組中的第一個元素中數(shù)組成員即{20021“,90,95,85”}循環(huán)結(jié)果為90+95+85=270最后sum為270,又輸出格式為“%6.2f\\n”要求保留兩位小數(shù)故最后輸出為270.00。
50.D解析:在本題中,主函數(shù)在調(diào)用fun()函數(shù)進行排序時,傳遞的參數(shù)是c+4和6,fun()函數(shù)實現(xiàn)的功能是將數(shù)組c的第5個元素開始的6個元素依次進行從大到小的順序排列。排序之后,數(shù)組c的內(nèi)容變?yōu)閧1,2,3,4,9,8,7,6,5,0}。
51.C
52.D解析:在C語言格式字符的輸出中,“%d”是以帶符號的十進制形式輸出整數(shù);“%60”是以8進制無符號形式輸出整數(shù)(不輸出前導(dǎo)符o);“%x”是以16進制無符號形式輸出整數(shù)(不輸出前導(dǎo)符Ox)。
53.B解析:在本題中,選項B)實際是先計算關(guān)系表達式'\'A\'<=c'的值是0還是1,再比較該值與字符\'Z\'之間的大小關(guān)系,顯然不能實現(xiàn)題目所要求的功能,而選項A)、C)、D)都可以。
54.B
55.B
56.C
57.D\r\n軟件是與計算機操作相關(guān)的計算機程序、規(guī)程、規(guī)則,以及可能有的文件、文檔及數(shù)據(jù);軟件開發(fā)要受到計算機系統(tǒng)的限制;軟件是一個邏輯實體,不是物理實體,軟件具有抽象性。因此選項D正確。
58.A解析:在有“/”運算符的表達式中,要避免兩個操作數(shù)都是整數(shù)的情況。本題選項A)中的'1/3'和'1/2'的值都為0,使選項A)的表達式值為0,但事實上代數(shù)式的值并不為0,所以選項A)錯誤。
59.B解析:程序中定義了數(shù)組a[10],則其元素的下標(biāo)范圍為0~9,而B選項中的a[10]所表示的元素已經(jīng)超出a數(shù)組元素的范圍,故應(yīng)該選擇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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國五分泳褲行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 2025年中國多式聯(lián)運行業(yè)市場發(fā)展監(jiān)測及投資戰(zhàn)略規(guī)劃報告
- 2024-2030年中國黑加侖飲料行業(yè)市場發(fā)展監(jiān)測及投資前景展望報告
- 2019-2025年中國豬干革(坯革)行業(yè)市場調(diào)研分析及投資戰(zhàn)略咨詢報告
- 2025年中國氯沙坦鉀氫氯噻嗪市場全景評估及發(fā)展趨勢研究預(yù)測報告
- 音樂項目課程設(shè)計范例
- 餐飲店培訓(xùn)課程設(shè)計
- 2025年中國防蟲防鳥網(wǎng)行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 2025年中國提花色丁綢行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 2025年移動式儲能電站市場調(diào)研報告
- 如何打造頂尖理財顧問團隊
- 土壤農(nóng)化分析課件
- 小區(qū)大型團購活動策劃
- NEC(新生兒壞死性小腸結(jié)腸炎)92273
- 2023年租賃風(fēng)控主管年度總結(jié)及下一年展望
- 開關(guān)插座必看的七個安全隱患范文
- 高分子成型加工課件
- 消防救援-低溫雨雪冰凍惡劣天氣條件下災(zāi)害防范及救援行動與安全
- 硅石項目建議書范本
- 概率論在金融風(fēng)險評估中的應(yīng)用研究
- 住院醫(yī)療互助給付申請書
評論
0/150
提交評論