版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2021-2022年山東省萊蕪市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.若變量已正確定義,下列正確的程序段是()。
A.while(ch=getchar()=='\N')putchar(ch);
B.while((ch=getchar())=='\n')putchar(ch);
C.while((ch=getchar())!='\N')putchar(ch);
D.while((ch=getchar())!='\n')putchar(ch);
2.有以下程序:#include<stdio.h>main(){FILE*f;f=fopen(“fllea.txt”,“w”);fprintf(f,“abc”);fclose(f);}若文本文件filea.txt中原有內(nèi)容為hello,則運(yùn)行以上程序后,文件filea.txt中的內(nèi)容為()。
A.abcloB.abcC.helloabcD.abchello
3.下列字符數(shù)組初始化語句中,不正確的是()。
A.charc[]=goodmorning;
B.charc[20]="goodmorning";
C.charc[]={a,b,c,d);
D.charc[]={"ffgoodmorning"};
4.C語言中運(yùn)算對(duì)象必須是整型的運(yùn)算符是()。
A.%=B./C.=D.<=
5.在一個(gè)有向圖中,所有頂點(diǎn)的入度之和等于所有頂點(diǎn)的出度之和的()倍。A.A.1/2B.1C.2D.4
6.棧通常采用的兩種存儲(chǔ)結(jié)構(gòu)是()。
A.順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)B.散列方式和索引方式C.鏈表存儲(chǔ)結(jié)構(gòu)和數(shù)組D.線性存儲(chǔ)結(jié)構(gòu)和非線性存儲(chǔ)結(jié)構(gòu)
7.以下程序段中的變量已正確定義:for(i=0;i<4;i++,i++)for(k=1;k<3;k++);printf(“*”);該程序段的輸出結(jié)果是()。
A.*B.****C.**D.********
8.假定a為一個(gè)整型數(shù)組名,則元素a[4]的字節(jié)地址為()。
A.a+4B.a+8C.a+16D.a+32
9.在面向?qū)ο蠓椒ㄖ?,?shí)現(xiàn)信息隱蔽是依靠()。
A.對(duì)象的繼承B.對(duì)象的多態(tài)C.對(duì)象的封裝D.對(duì)象的分類
10.有以下程序,程序中庫函數(shù)islower(ch)用以判斷ch中的字母是否為小寫字母:
程序運(yùn)行后的輸出結(jié)果是()。
A.abcdEFg!B.AbCdEFg!C.abcdEFG!D.aBcDEFG!
11.采用鄰接表存儲(chǔ)的圖的廣度優(yōu)先遍歷算法類似于二叉樹的()。A.A.先序遍歷B.中序遍歷C.后序遍歷D.按層遍歷
12.以下敘述中錯(cuò)誤的是()。
A.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題
B.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成
C.C語言是-種結(jié)構(gòu)化程序設(shè)計(jì)語言
D.結(jié)構(gòu)化程序設(shè)計(jì)提倡模塊化的設(shè)計(jì)方法
13.
有以下程序:
main
{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,
12,},{13,14,15,16}},i,j;
for(i=0;i<4;i++)
{for(j=0;j<i;j++)printf("%4c",);
for(j=________;J<4;j++)printf("%4d",num
[i][j]);
printf("\n");}}
若要按以下形式輸出數(shù)組右上半三角
1234
678
1112
16
則在程序下劃線處應(yīng)填入的是()。
A.i-1B.iC.i+1D.4一i
14.第
22
題
閱讀下面程序,則程序執(zhí)行后的結(jié)果為
#include"stdio.h"
main()
{inta=4,b=6,c=7;
doubled,fun(int,int,int);
d=fun(a,b,c);
printf("%lf\n",d);}
doublefun(inta,intb,intc)
{doubles;
s=a%b*c;
returns;}
A.27B.27.000000C.28D.28.000000
15.以下函數(shù)調(diào)用語句中含有實(shí)參個(gè)數(shù)為().func((exp1,exp2),(exp3,exp4,exp5));
A.1個(gè)B.2個(gè)C.4個(gè)D.5個(gè)
16.對(duì)于長度為n的線性表,在最壞情況下,下列各種排序法所對(duì)應(yīng)的比較次數(shù)中正確的是(
A.冒泡排序?yàn)閚/2B.冒泡排序?yàn)閚C.快速排序?yàn)閚D.快速排序?yàn)閚(n-1)/2
17.設(shè)變量n為f1oat類型,m為int類型,則以下能實(shí)現(xiàn)將n中的數(shù)值保留小數(shù)點(diǎn)后兩位,第三位進(jìn)行四舍五人運(yùn)算的表達(dá)式是()。
A.n=(n*100+0.5)/100.0
B.m=n*100+0.5,n=m/100.0
C.n=n*100+0.5/100.0
D.n=(n/100+0.5)*100.0
18.有以下程序#definef(x)x*xmain(){inti;i=f(4+4)/f(2+2);printf(“%d\n”,i);}執(zhí)行后輸出結(jié)果是()A.28B.22C.16D.4
19.若已定義inta,則表達(dá)式a=10,a+10,a++的值是()。
A.20B.10C.21D.11
20.第
42
題
若有說明語句
chara[]="Itismine";
char*p="Itismine";
則以下不正確的敘述是
A.a+1表示的是字符t的地址
B.p指向另外的字符串時(shí),字符串的長度不受限制
C.p變量中存放的地址值可以改變
D.a中只能存放10個(gè)字符
二、2.填空題(20題)21.以下程序的功能是輸入任意整數(shù)給n后,輸出n行從大寫字母A開始構(gòu)成的三角形字符陣列圖形。例如,輸入整數(shù)5時(shí)(注意:n不得大于10),程序運(yùn)行結(jié)果如下:
ABCDE
FCHI
JKL
MN
O
請(qǐng)?zhí)羁胀瓿稍摮绦颉?/p>
#include<stdio.h>
main()
inti.j,n;charch='A';
scanf("%d",&n);
if(n<11)
for(i=1;i<=n;i++)
for(j=1;j<=n-i+1;j++)
{printf("%2c",ch);
【】;
}
【】;
}
elseprintf("nistoolarge!\n");
prinff("\n");
}
22.以下程序運(yùn)行后的輸出結(jié)果是______。
main()
{
intx=10,y=20,t=0
if(x==y)t=x;x=y;y=t;
printf("%d,%d/n",x,y);
}
23.下面程序的運(yùn)行結(jié)果是______。
main()
{inti=0,j=10,k=2,s=0;
{i+=k;
if(i>j)
{printf("%d\n",s);
break;}
s+=i;}}
24.設(shè)有如下程序main(){intn1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(“%d”,n1);}}程序運(yùn)行后,如果從鍵盤上輸入1298,則輸出結(jié)果為
25.若a的值為1,則表達(dá)式!a‖++a的值是______。
26.在對(duì)文件操作的過程中,若要求文件的位置指針回到文件的開始處,應(yīng)當(dāng)調(diào)用的函數(shù)是【】。
27.以下程序的定義語句中,x[1]的初值是【】,程序運(yùn)行后輸出的內(nèi)容是【】。
#include<stdio.h>
main()
{intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;
for(i=0;i<4;i++)
{p[i]=&x[2*i+1];
printf("%d",p[i][0]);
}
printf("\n");)
}
28.下列程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
main()
{inta=10,b=3;
printf("%d,",a%B);
printf("%d,",(a-b,a+B));
printf("%dLn",a-b?a-b:a+B);
}
29.下列程序的輸出結(jié)果是______。
#include<stdio.h>
main()
{intx=10,y=10,i;
for(i=0;x>8;y=++i)
printf("%d%d",x--,y);
}
30.函數(shù)delete(s,i,n)是作用是從字符串s中刪除從第i個(gè)字符開始的n個(gè)字符,請(qǐng)?zhí)羁铡?/p>
voiddelete(chars[],inti,intn)
{intj,k,length=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';
}
31.表示“整數(shù)x的絕對(duì)值大于5”時(shí)值為“假”的C語言表達(dá)式是______。
32.近年來形成了軟件開發(fā)的多種模式,大致有3種類型:基于瀑布模型的結(jié)構(gòu)化生命周期方法、基于動(dòng)態(tài)定義需求的【】方法和基于結(jié)構(gòu)的面向?qū)ο蟮能浖_發(fā)方法。
33.棧的3種基本運(yùn)算是:入棧、退棧和______。
34.下面程序由兩個(gè)源程序文件:t4.h和t4.c組成,程序編譯運(yùn)行的結(jié)果是:【】。
t4.h的源程序?yàn)椋?/p>
#defineN10
#dennef2(x)(x*N)
t4.c的源程序?yàn)椋?/p>
#include<stdio.h>
#defineM8
#definef(x)((x)*M)
#include"t4.h"
#main()
{inti,j;
i=f(1+1);j=f2(1+1);
printf(%d%d\n",i,j);
}
35.若有語句:
inti=-19,j=i%4;
printf("%d\n",j);
則輸出結(jié)果是【】。
36.算法的基本特征是可行性、確定性、【】和擁有足夠的情報(bào)。
37.以下程序的輸出結(jié)果是【】。
main()
{inty=9;
for(;y>0;y--)
if(y%3==0)
{printf("%d",--y);continue;}}
38.已知字符A的ASCⅡ代碼值為65,以下程序運(yùn)行時(shí)若從鍵盤輸入:B33<回車>.則輸出結(jié)果是()。
#include
main()
{chara,b;
a=getchar();scanf("%d",&B);
a=a-'A'+'0';b=b*2;
printf("%c%c\n",a,B);
}
39.以下程序的功能是輸出如下形式的方陣:
13141516
9101112
5678
1234
請(qǐng)?zhí)羁铡?/p>
main()
{inti,j,x;
for(j=4;j>0;j--)
{for(i=1;i<=4;i++)
{x=(j-1)*4+【】;
printf("%4d",x);
}
printf("\n");
}
}
40.以下程序的輸出結(jié)果是【】。
main()
{ints,i;
for(s=0,i=1;i<3;i++,s+=i;
printf(“%d\n”,s);
}
三、1.選擇題(20題)41.有以下程序#include<stdio.h>main(){ints[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;for(i=0;i<12;i++)c[s[i]++;for(i=l;i<5;i++)printf("%d",c[i]);printf("\n");}程序的運(yùn)行結(jié)果是
A.1234B.2344C.4332D.1123
42.下面程序的運(yùn)行結(jié)果是
#include<stdio.h>
main()
{staticchara[]="Languagef",b[]="programe";
char*p1,*p2;intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))printf("%c",*(p1+k));}
A.gaeB.gaC.LanguageD.有語法錯(cuò)
43.以下敘述中正確的是()。
A.預(yù)處理命令行必須位于C源程序的起始位置
B.在C語言中,預(yù)處理命令行都以“#”開頭
C.每個(gè)C程序必須在開頭包含預(yù)處理命令行:#include<stdio.h>
D.C語言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能
44.下列程序的運(yùn)行結(jié)果為#include<stdio.h>voidabc(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
45.開發(fā)軟件時(shí)對(duì)提高開發(fā)人員工作效率至關(guān)重要的是()
A.操作系統(tǒng)的資源管理功能B.先進(jìn)的軟件開發(fā)工具和環(huán)境C.程序人員的數(shù)量D.計(jì)算機(jī)的并行處理能力
46.當(dāng)k的值不為0時(shí),在下列選項(xiàng)中能夠?qū)的值賦給變量m,n的是
A.m=k=n
B.(m=k)&&(n=k)
C.(m=k)||(n=k)
D.(k=m)&&(n=k)
47.有以下程序
#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");
}
程序的運(yù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,
48.以下選項(xiàng)中可作為C語言合法常量的是
A.-80B.-080C.-8e1.0D.-80.0e
49.按照“先進(jìn)先出”組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是()。
A.隊(duì)列B.棧C.雙向鏈表D.二叉樹
50.若有定義和語句:int**pp,*p,a=20,b=1O;pp=&p;p=&a;p=&b;printf("%d,%d\n",*p,**pp);則輸出結(jié)果是()。
A.20,10B.20,20C.10,20D.10,10
51.以下對(duì)枚舉類型名的定義中正確的是______。
A.enuma={one,two,three};
B.enuma{on=9,two=-1,three};
C.enuma={"one","two","three"};
D.enuma{"one","two","three"};
52.若已定義x和y為double類型,則表達(dá)式:x=1,y=x+3/2的值是()A.1B.2C.2.0D.2.5
53.設(shè)有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);則
A.運(yùn)行程序段后輸出0B.運(yùn)行程序段后輸出1C.程序段中的控制表達(dá)式是非法的D.程序段執(zhí)行無限次
54.若變量已正確定義,有以下程序段:i=0;doprinntf("%d,i");while(i++);printf("%d\n",i);其輸出結(jié)果是()。
A.0,0B.0,1C.1,1D.程序進(jìn)入無限循環(huán)
55.對(duì)于一個(gè)正常運(yùn)行的C語言程序,以下敘述中正確的是()。
A.程序的執(zhí)行總是從main函數(shù)開始,在main函數(shù)結(jié)束
B.程序的執(zhí)行總是從程序的第一個(gè)函數(shù)開始,在main函數(shù)結(jié)束
C.程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個(gè)函數(shù)中結(jié)束
D.程序的執(zhí)行總是從程序的第一個(gè)函數(shù)開始,在程序的最后一個(gè)函數(shù)中結(jié)束
56.下列描述說明正確的是()
A.定義結(jié)構(gòu)體時(shí),它的每個(gè)成員的數(shù)據(jù)類型可以不同
B.不同結(jié)構(gòu)體的成員名不能相同
C.結(jié)構(gòu)體定義時(shí),其成員的數(shù)據(jù)類型不能是結(jié)構(gòu)體本身
D.結(jié)構(gòu)體定義時(shí)各成員項(xiàng)之間可用分號(hào)也可用逗號(hào)隔開
57.設(shè)有關(guān)系R和S,關(guān)系代數(shù)表達(dá)式為R-(R-S)表示的是
A.R∩SB.R-SC.R∪SD.R÷S
58.若有以下定義,則表達(dá)式a*b+d-c值的類型為______。chara;intb;floatc;doubled;
A.floatB.intC.charD.double
59.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inta=4printf("%d\n",(a+=a-=a*A));}
A.-8B.14C.0D.-24
60.有以下程序main(){unsignedchara,b;a=4|3;b=4&3;printf("%d%d\n",a,b);}執(zhí)行后的輸出結(jié)果是
A.70B.07C.11D.430
四、選擇題(20題)61.已有定義:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判斷c中的字符是否為大寫字母的表達(dá)式是()。A.A.isupper(c)B.'A'<=c<='Z'
C.'A'<=c&&c<='Z'
D.c<=('z'-32)&&('a'-32)<=c
62.C語言中用于結(jié)構(gòu)化程序設(shè)計(jì)的三種基本結(jié)構(gòu)是A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
B.if、switch、break
C.for、while、do-while
D.if、for、continue
63.有以下程序
64.在數(shù)據(jù)管理技術(shù)發(fā)展的三個(gè)階段中,數(shù)據(jù)共享最好的是()。
A.人工管理階段B.文件系統(tǒng)階段C.數(shù)據(jù)庫系統(tǒng)階段D.三個(gè)階段相同
65.
66.軟件設(shè)計(jì)中劃分模塊的一個(gè)準(zhǔn)則是()。A.低內(nèi)聚低耦合B.高內(nèi)聚低耦合C.低內(nèi)聚高耦合D.高內(nèi)聚高耦合
67.用數(shù)組名作為函數(shù)調(diào)用的實(shí)參,則傳遞給形參的是()。
A.數(shù)組中所有元素的值B.數(shù)組的第一個(gè)數(shù)據(jù)C.數(shù)組的首地址D.數(shù)組元素的個(gè)數(shù)
68.
69.有以下程序:
voidmain()
{
inty=10;
while(y>>1){printf("y=%d\n",y);}
}
程序執(zhí)行后的輸出結(jié)果是()。
A.y=0
B.y=-1
C.y=1
D.while構(gòu)成無限循環(huán)
70.在關(guān)系數(shù)據(jù)庫中,用來表示實(shí)體間聯(lián)系的是()。
A.網(wǎng)狀結(jié)構(gòu)B.樹狀結(jié)構(gòu)C.屬性D.二維表
71.
下列程序中函數(shù)sort()的功能是對(duì)數(shù)組a中的數(shù)據(jù)進(jìn)行由大到小的排序。
#include<stdio.h>
voidsort(inta[],intll)
{inti,j,t;
for(i=0;i<n-1;i++)
for(j=j+1+1;j<n;j++)
if(a[i]<a[j])
{t=a[i];a[i]=a[j];a[j]=t;
}
}
main()
{inta[10]一{1,2,3,4,5,6,7,8,9,10},i;
sort(&a[1],7);
for(i=0;i<10;i++)printf("%d,",a[i]);
}
程序運(yùn)行后的輸出結(jié)果是()。
A.1,2,3,4,5,6,7,8,9,10,
B.10,9,8,7,6,5,4,3,2,1,
C.1,8,7,6,5,4,3,2,9,10,
D.1,2,10,9,8,7,6,5,4,3,
72.(51)在計(jì)算機(jī)中,算法是指()
A.查詢方法
B.加工方法
C.解題方案的準(zhǔn)確而完整的描述
D.排序方法
73.下面程序由兩個(gè)源程序文件t4.h和t4.c組成,程序編譯運(yùn)行的結(jié)果是()。
t4.h的源程序?yàn)椋?/p>
A.920B.1611C.911D.1610
74.有以下程序,其中%u表示按無符號(hào)整數(shù)輸出:
main
{
unsignedintx=0xFFFF;/*x的初值為十六進(jìn)制數(shù)*/
printf("%u\n",x);
}
程序運(yùn)行后的輸出結(jié)果是()。
A.-1B.65535C.32767D.0xFFFF
75.表達(dá)式a+=a-=a=9的值是()。
A.9B.-9C.18D.0
76.以下不合法的字符常量是()。
77.
78.有以下程序:
執(zhí)行后輸出結(jié)果是()。
A.n,tuesdayB.d,mondayC.U,mondayD.0,wednesday
79.
下列程序的輸出結(jié)果是()。
#includedstdi0.h>
#includedstring.h>
voidfun(intb[])
{staticinti=0;
do
{b[i]+=b[i+1];
}while(++i<2);
}
main
{intk,a[5]={1,3,5,4,9};
fun(a);
for(k=0;k<5;k++)printf("%d",a[k]);
}
A.13579B.48579C.48549D.48999
80.設(shè)有表示學(xué)生選課的三張表,學(xué)生s(學(xué)號(hào),姓名,性別,年齡,身份證號(hào)),課程c(課號(hào),課名),選課SC(學(xué)號(hào),課號(hào),成績),則表sc的關(guān)鍵字(鍵或碼)為()。
A.課號(hào),成績B.學(xué)號(hào),成績C.學(xué)號(hào),課號(hào)D.學(xué)號(hào),姓名,成績
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:依次取出字符串中所有的字母字符,形成新的字符串,并取代原字符串。例如,若輸入的字符串是:“ab232bd34bkw”,則輸出結(jié)果是:“abbdbkw”。請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編寫函數(shù)fun(),該函數(shù)的功能是判斷字符串是否為回文,若是,則函數(shù)返回1,在主函數(shù)中輸出“YES”,否則返回0,在主函數(shù)中輸出“NO”。回文字符串是指順讀和倒讀都一樣的字符串。例如,字符串LEVEL是回文,而字符串123312就不是回文。注意:部分源程序在文件prog1.c中。第3部分無紙化考武題庠請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:1#include2#defineN803intfun(char*str)4{56}7main()8{9chars[n];10FILE*out;11char*test[]={"1234321","123421","123321","abcdCBA"};12inti;13printf("Enterastring:");14gets(s);15printf("\n\n");16puts(s);17if(fun(s))18printf("YES\n");19else20printf("NO\n");21/******************/22out=fopen("out.dat","w");23for(i=0;i<4/i++)24if(fun(test[i]))25fprintf(out,"YES\n");26else27fprintf(out,"NO\n");28fclose(out);29/******************/30}
參考答案
1.D解析:本題考查兩個(gè)知識(shí)點(diǎn):①C語言用'\\n'這個(gè)字符常量表示換行;②函數(shù)getchar()的作用是從終端輸入一個(gè)字符,當(dāng)遇到換行時(shí)結(jié)束輸入。
2.B執(zhí)行“fprintf(f,“abc”);”后,f文件原有內(nèi)容被“abc”覆蓋。故本題答案為B選項(xiàng)。
3.A本題考查兩個(gè)概念:①用單引號(hào)括起來的一個(gè)字符常量只能存放一個(gè)字符;②℃語言中沒有字符串變量,只能用字符數(shù)組來存儲(chǔ)字符串。
4.A解析:C++語言規(guī)定:取余運(yùn)算符的運(yùn)算對(duì)象必須是整型,復(fù)合運(yùn)算符“%=”中包含%運(yùn)算,它的運(yùn)算對(duì)象也必須是整型。
5.B
6.A解析:和線性表類似,棧也有兩種存儲(chǔ)方法,一是順序棧,二是鏈?zhǔn)綏?。棧的順序存?chǔ)結(jié)構(gòu)是利用一組地址連續(xù)的存儲(chǔ)單元一次存儲(chǔ)自棧底到棧頂?shù)臄?shù)據(jù)元素,同時(shí)附設(shè)指針top指示棧頂元素的位置,由于棧的操作是線性表操作的特例,相對(duì)而言,鏈?zhǔn)綏5牟僮鞲子趯?shí)現(xiàn)。注意:這3種運(yùn)算方法在各種存儲(chǔ)結(jié)構(gòu)中的應(yīng)用。
7.AC語言中,分號(hào)為一條語句的結(jié)束。因此“for(i=0;i<4;i++,i++)for(k=1;k<3;k++);”是完整的語句,“printf(“*”);”是獨(dú)立語句,不屬于for循環(huán)。最后執(zhí)行printf語句輸出“*”。故本題答案為A選項(xiàng)。
8.C
9.C解析:通常認(rèn)為,面向?qū)ο蠓椒ň哂蟹庋b性、繼承性、多態(tài)性幾大特點(diǎn)。就是這幾大特點(diǎn),為軟件開發(fā)提供了一種新的方法學(xué)。
封裝性:所謂封裝就是將相關(guān)的信息、操作與處理融合在一個(gè)內(nèi)含的部件中(對(duì)象中)。簡單地說,封裝就是隱藏信息。這是面向?qū)ο蠓椒ǖ闹行?,也是面向?qū)ο蟪绦蛟O(shè)計(jì)的基礎(chǔ)。
繼承性:子類具有派生它的類的全部屬性(數(shù)據(jù))和方法,而根據(jù)某一類建立的對(duì)象也都具有該類的全部,這就是繼承性。繼承性自動(dòng)在類與子類間共享功能與數(shù)據(jù),當(dāng)某個(gè)類作了某項(xiàng)修改,其子類會(huì)自動(dòng)改變,子類會(huì)繼承其父類所有特性與行為模式。繼承有利于提高軟件開發(fā)效率,容易達(dá)到一致性。
多態(tài)性:多態(tài)性就是多種形式。不同的對(duì)象在接收到相同的消息時(shí),采用不同的動(dòng)作。例如,一個(gè)應(yīng)用程序包括許多對(duì)象,這些對(duì)象也許具有同一類型的工作,但是卻以不同的做法來實(shí)現(xiàn)。不必為每個(gè)對(duì)象的過程取一過程名,造成復(fù)雜化,可以使過程名復(fù)用。同一類型的工作有相同的過程名,這種技術(shù)稱為多態(tài)性。
經(jīng)過上述分析可知,在面向?qū)ο蠓椒ㄖ?,?shí)現(xiàn)信息隱蔽是依靠對(duì)象的封裝。正確答案是選項(xiàng)C。
10.D調(diào)用缸函數(shù)后,實(shí)參數(shù)組名sl傳給形參指針P,P也指向數(shù)組sl。m函數(shù)的功能是遍歷字符數(shù)組中的所有字符,如果某一個(gè)字符是空格并且前一個(gè)字符是小寫字母的話,就把前一個(gè)字符轉(zhuǎn)換為大寫。程序中語句P[i一1]=P[i—1]一ga’+-A‘;即P[i一1]=P[i一1]一32,意思是將P[i一1]中的字符轉(zhuǎn)換為大寫。因此D選項(xiàng)正確。
11.D
12.A使用順序,選擇(分支),循環(huán)三種基本結(jié)構(gòu)構(gòu)成的程序可以解決所有問題,而不只是解決簡單問題,所以A錯(cuò)誤。
13.B
\n本題中要求輸出右上半角的數(shù),對(duì)角線上的數(shù)的下標(biāo)相同,所以j=i。
\n
14.D
15.B
16.D在最壞情況下,冒泡排序和快速排序的比較次數(shù)都是n(n一1)/2?!局R(shí)拓展】所謂冒泡排序,就是將相鄰的兩個(gè)數(shù)據(jù)比較,如前面的數(shù)據(jù)大于后面的,則位置互換。這樣不停地比較、互換,其實(shí)就是把大的數(shù)往后排,小的數(shù)往前排(就像冒泡一樣冒出來了)。
17.B
18.A解析:f(4+4)/f(2+2)=4+4*4+4/2+2*2+2=28。
19.B
20.D在C程序中,可以用字符數(shù)組存放一個(gè)字符串,然后輸出該字符串,也可以用字符指針指向一個(gè)字符串。
題目中用字符數(shù)組a[]來存放字符串'Itismine',a為數(shù)組名,表示首元素的地址,即字母I的地址。a+1表示數(shù)組中第二個(gè)元素t的地址,選項(xiàng)A正確。當(dāng)用字符串指針指向字符串時(shí),只是將字符串的第一個(gè)元素的地址賦給指針,當(dāng)該指針指向其他字符串時(shí),只需將該字符串的第一個(gè)元素地址賦給這個(gè)指針即可,和字符串的長度沒有關(guān)系,選項(xiàng)B也是正確的。指針變量的值為元素的地址,和元素具體的值沒有關(guān)系,當(dāng)指針指向不同的元素時(shí),存放的地址也會(huì)發(fā)生改變,故選項(xiàng)C是正確的。數(shù)組a初始化時(shí)沒有指定數(shù)組長度,系統(tǒng)自動(dòng)根據(jù)初值個(gè)數(shù)確定數(shù)組長度,題目中只是將10個(gè)有效字符存放到數(shù)組中,不能說明這個(gè)數(shù)組只能存放10個(gè)字符。
21.ch++或ch=ch+1或++chprintf("\n")或prinff("\015")ch++或ch=ch+1或++ch,\r\nprintf('\\n')或prinff('\\015')解析:程序中使用了兩層for循環(huán),外循環(huán)的作用是控制行數(shù),內(nèi)循環(huán)的作用是控制每行的列數(shù),在內(nèi)循環(huán)中首先輸出當(dāng)前字符(從\'A\'開始),[6]中應(yīng)填ch++,使ch中的字符變?yōu)橐敵龅南乱粋€(gè)字符。每輸出一行就需換一次行,所以[7]處應(yīng)填pfintf('\\n')。
22.20020,0解析:本題考查的知識(shí)點(diǎn)是if語句的基本概念。在主函數(shù)中首先定義了三個(gè)整型變量x、y,t,并分別給它們賦初值為10,20,0,接著執(zhí)行if語句,在if后面括號(hào)內(nèi)的條件表達(dá)式中,條件“x==y”即“10==20”不成立,則不執(zhí)行其后的語句“t=x”,然后退出if語句,順序執(zhí)行語句X=y;y=t;。執(zhí)行完這兩條語句后x的值變?yōu)?0,y的值變?yōu)?,所以最后輸出x,y的值為20和0。
23.
24.89218921
25.11解析:邏輯運(yùn)算中,非1即0,非0即1,!a=0,++a為邏輯1,所以0和1相或結(jié)果為1。
26.rewind()或fseek()rewind()或fseek()
27.224682,2468解析:在主函數(shù)中根據(jù)整型數(shù)組x[]的定義可知,x[1]的初值等于2。在for循環(huán)語句中,當(dāng)i=0時(shí),p[0]=&x[1],p[0][0]=2;當(dāng)i=1時(shí),p[1]=&x[3],p[1][0]=4;當(dāng)i=2時(shí),p[2]=&x[5],p[2][0]=6;當(dāng)i=3時(shí),p[3]=&x[7],\ue008p[3][0]\ue009=8,所以程序輸出的結(jié)果為2、4、6、8。
28.11371,13,7解析:本題考查3個(gè)知識(shí)點(diǎn):①余數(shù)的計(jì)算,題中的a=10,b=3,a%b=1;②(表達(dá)式1,表達(dá)式2)形式的結(jié)果為最后—個(gè)表達(dá)式的值,題中的a=10,b=3,(a-b,a+b)=a+b=13:③條件運(yùn)算符的使用,題中的a-b?a-b:a+b,判斷語句a-b=7不為0,所以執(zhí)行a-b,結(jié)果為7。
29.101091101091解析:for(表達(dá)式1;表達(dá)式2:表達(dá)式3)語句的功能是:首先計(jì)算表達(dá)式1的值,然后檢測表達(dá)式2的值,若其值為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢后,再計(jì)算表達(dá)式3的值。然后再檢測表達(dá)式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)。
30.length++i<lengthlength++\r\ni<length解析:第一個(gè)循環(huán)極有可能是計(jì)算串的長度,在i<=length時(shí)字符才被刪除,被刪除的是第i個(gè)到第i+n或最后一個(gè)間的所有字符。刪除前,應(yīng)判斷i<=length。由于已經(jīng)進(jìn)行了-i運(yùn)算,故實(shí)際應(yīng)填入i<length。
31.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本題考查基本邏輯表達(dá),“整數(shù)x的絕對(duì)值大于5”時(shí)值為“假”,即整數(shù)x的絕對(duì)值小于等于5,也就是整數(shù)x要大于等于-5且要小于等于5。這里“且”用“與(&&)”表示,所以C語言表達(dá)式為:(x>-5)&&(x<5)。
32.原型化原型化
33.讀棧頂元素讀棧頂元素解析:棧的基本運(yùn)算有3種:入棧、退棧和讀取棧頂元素。其中,入棧是指在棧頂插入一個(gè)新的元素;退棧是指取出棧頂元素并賦值給一個(gè)變量;讀棧頂元素是將棧頂元素賦值給一個(gè)指定的變量,不刪除棧頂元素。
34.16111611解析:題目中第1條要替換的語句i=f(1+1);展開后是i=((1+1)*M);繼續(xù)展開為i((1+1*8),結(jié)果使i=16。而第2條語句j=f2(1+1)”;展開后為j=(1+1*N);繼續(xù)展開為j=(1+1*10),結(jié)果使j=11。故程序運(yùn)行的結(jié)果是輸出1611。
35.-3-3解析:%運(yùn)算符是求兩個(gè)數(shù)相除的余數(shù),其結(jié)果與被除數(shù)的符號(hào)一致,本題中“-19%4”的值為“-3”。
36.有窮性有窮性解析:算法有四個(gè)基本特征:可行性、確定性、有窮性和擁有足夠的情報(bào)。
37.852852解析:循環(huán)前,變量y的值為9,其中的循環(huán)語句在y大于0情況下循環(huán),每次循環(huán)后y的值減1。循環(huán)體是當(dāng)y能被3整除時(shí)輸出表達(dá)式--y,輸出的是減1后的y值。這樣,第一次循環(huán)因y為9,能被3整除,輸出8,y也變成8。又經(jīng)兩次循環(huán),y的值變?yōu)?,又讓y減1變成5,并輸出5;又經(jīng)兩次循環(huán),y的值變成3,讓y減1變成2,輸出2;再經(jīng)兩次循環(huán)后,y的值變成0,結(jié)束循環(huán)。所以程序輸出852。
38.1B
39.ii解析:外循環(huán)是遞減的,方陣中的每個(gè)元素為(j-1)*4+i,因此空格處填i。
40.55解析:此程序中,for循環(huán)語句后面直接跟了一個(gè)“;”,表明循環(huán)體為空。輸出語句不在for循環(huán)體內(nèi),所以在循環(huán)執(zhí)行完畢后才輸出s的值。s、i的初值分別為0和1,判斷循環(huán)條件,表達(dá)式“1<3”成立,執(zhí)行“i++,s+=i”后,i和s的值分別為2和1,繼續(xù)判斷循環(huán)條件,表達(dá)式“2<3”成立,執(zhí)行“i++,s+=i”后,i和s的值分別為3,再次判斷循環(huán)條件,表達(dá)式“3<3”不成立,循環(huán)結(jié)束。
41.C解析:在for(i=0;i<12;i++)c[s[i]]++中,數(shù)組元素s[i]的值作為數(shù)組c的下標(biāo),當(dāng)退出循環(huán)時(shí),數(shù)組c的4個(gè)元素的值分別為4、3、3、2。
42.A解析:考查用指針來引用字符數(shù)組元素的方法。指針p1+k相當(dāng)于指針p1向后移動(dòng)了k個(gè)字符的位置,指針p2同理。
43.B解析:選項(xiàng)B)正確,預(yù)處理命令行之前都有一個(gè)“#”符號(hào)。C語言提供三種預(yù)處理:宏替換,文件包含,條件編譯。
44.A解析:本題考查了用字符指針引用字符數(shù)組中的字符及對(duì)字符的操作。函數(shù)abc()的for語句執(zhí)行過程是:從字符指針str所指向的字符數(shù)組的第一個(gè)元素開始,逐一判斷字符是否為'c',若不是就執(zhí)行一次數(shù)組元素的賦值過程,若字符為'c'就不執(zhí)行。
45.B解析:軟件工程鼓勵(lì)研制和采用各種先進(jìn)的軟件開發(fā)方法、工具和環(huán)境。工具和環(huán)境的使用又進(jìn)一步提高了軟件的開發(fā)效率、維護(hù)效率和軟件質(zhì)量。
46.B解析:&&,‖在某種情況下會(huì)實(shí)行“短路規(guī)則”,即當(dāng)邏輯與前面一個(gè)表達(dá)式的值為假的時(shí)候,后面一個(gè)表達(dá)式就不需要計(jì)算,這個(gè)邏輯表達(dá)式一定為假;當(dāng)邏輯或前面一個(gè)表達(dá)式為真的時(shí)候,后面一個(gè)表達(dá)式就不需要計(jì)算,這個(gè)邏輯或表達(dá)式一定為真。選項(xiàng)A)是將n的值賦值給m和k。選項(xiàng)C)就是進(jìn)行了短路規(guī)則,當(dāng)m=k賦值后,m得到的新值不為0,即為真,邏輯或后面的表達(dá)式就不被計(jì)算,所以n沒有被賦值。D)答案沒有什么意義。
47.D解析:在本題中,主函數(shù)在調(diào)用fun()函數(shù)進(jìn)行排序時(shí),傳遞的參數(shù)是c+4和6,fun()函數(shù)實(shí)現(xiàn)的功能是將數(shù)組c的第5個(gè)元素開始的6個(gè)元素依次進(jìn)行從大到小的順序排列。排序之后,數(shù)組c的內(nèi)容變?yōu)閧1,2,3,4,9,8,7,6,5,0}。
48.A解析:C語言的常量分為整型常量、實(shí)型常量和字符型常量。本題中包含整型常量和實(shí)型常量。選項(xiàng)B)以0打頭,應(yīng)該屬于八進(jìn)制整數(shù),而八進(jìn)制整數(shù)只能用數(shù)字0~7表示,所以選項(xiàng)B)不合法;選項(xiàng)C)和D)從形式上看屬于實(shí)型常量,但對(duì)于指數(shù)形式的實(shí)型常量,e(或E)之前必須有數(shù)字,且e后面的指數(shù)必須為整數(shù),所以選項(xiàng)C)和D)都不合法;選項(xiàng)A)屬于實(shí)型常量中正確的十進(jìn)制小數(shù)形式。
49.A隊(duì)列是一種特殊的線性表,只允許在表的一端插八元素,在表的另一端刪除元素,插入元素的一端叫“隊(duì)尾”,刪除元素的一端叫“隊(duì)頭”。先插入的元素先被刪除,是按“先進(jìn)先出”的原則組織數(shù)據(jù)的。
【知識(shí)拓展】“隊(duì)列”和“?!倍际且环N特殊的線性表。之所以稱之為“隊(duì)列”,其形式如“排隊(duì)”。要講究“先來后到”,先進(jìn)先出,后進(jìn)后出。
50.D解析:本題考查指針變量的賦值。**pp是定義了一個(gè)指向指針的指針變量,語句pp=&p的意思是將pp指向指針p,*p和**pp都足指針p所指的內(nèi)存空間的內(nèi)容,即b的值。
51.B解析:聲明枚舉類型用enum開頭。例如:enumweekday(sun,mon,tue,wed,thu,fri,sat);說明;1、在C編譯中,對(duì)枚單元素按常量處理,同時(shí)可以改變他們的值。2、枚舉值可以用來做判斷比較。3、一個(gè)整數(shù)不能直接賦給一個(gè)牧舉變量。
52.C解析:這是一個(gè)逗號(hào)表達(dá)式,它的值應(yīng)為表達(dá)式y(tǒng)=x+3/2的值,而前一個(gè)表達(dá)式已給x賦值1,在沒有進(jìn)行類型轉(zhuǎn)換的情況下,3/2的值為1,所以x+3/2的值應(yīng)為2.0。
53.B解析:本題考查while語句的使用。本題考查邏輯非運(yùn)算符和不等于運(yùn)算符的區(qū)別,邏輯非運(yùn)算符'!'的優(yōu)先級(jí)大于不等于運(yùn)算符'!='的優(yōu)先級(jí)。
54.B解析:本題考查的重點(diǎn)是do-while用法。do-while循環(huán)先執(zhí)行循環(huán)體中的語句,然后再判斷while中的條件是否為真,如果為真(非零)則繼續(xù)循環(huán);如果為假,則終止循環(huán)。因此,do-while循環(huán)至少要執(zhí)行一次循環(huán)語句。
55.A解析:在C語言中,所有函數(shù)的定義,包括主函數(shù)main在內(nèi),都是平行的。也就是說,在一個(gè)函數(shù)的函數(shù)體內(nèi),不能再定義另一個(gè)函數(shù),即不能嵌套定義。但是函數(shù)之間允許互相調(diào)用.也允許嵌套調(diào)用,習(xí)慣上把調(diào)用者稱為主函數(shù)。調(diào)用函數(shù)還可以調(diào)用自己,稱為遞歸調(diào)用。main函數(shù)是主函數(shù),它可以調(diào)用其他函數(shù),而不允許被其他函數(shù)調(diào)用。因此,C程序的執(zhí)行總是從main函數(shù)開始.完成對(duì)其他函數(shù)的調(diào)用后返回到main函數(shù),最后由main函數(shù)結(jié)束整個(gè)程序。一個(gè)C源程序必須有也只能有一個(gè)main函數(shù)。
56.A
57.A解析:R-S表示屬于R但不屬于S,R-(R-S)\ue009表示屬于R但不屬于(R-S),即相當(dāng)于R∩S。
58.D解析:在C語言中,不同數(shù)據(jù)類型的數(shù)據(jù)運(yùn)算時(shí)要先轉(zhuǎn)換成相同的數(shù)據(jù)類型再參與運(yùn)算。在上述表達(dá)式中,字符型先轉(zhuǎn)換成整數(shù)得到a*b,整數(shù)再轉(zhuǎn)換成雙精度型執(zhí)行+d,單精度float型數(shù)據(jù)c先轉(zhuǎn)換成雙精度double型數(shù)據(jù)后參與減法運(yùn)算。結(jié)果是double型。
59.D解析:表達(dá)式a+=a-=a*a看起來復(fù)雜,其實(shí)將它分成兩個(gè)表達(dá)式來計(jì)算就簡單了:①第一個(gè)表達(dá)式(a-=a*a)=(a=a-a*a=-12);②第二個(gè)表達(dá)式(a+=a-=a*a)=(a=a+a=-24)。
60.A解析:本題考核的知識(shí)點(diǎn)是位運(yùn)算。在位與運(yùn)算符“&”中參加運(yùn)算的兩位都為1時(shí),其結(jié)果為1,否則結(jié)果為0,位與運(yùn)算符“|”中參加運(yùn)算的兩位只要有一個(gè)為1,則結(jié)果為1,只有當(dāng)相應(yīng)的兩位都為。結(jié)果才為0。所以最后輸出a和b的值為7和0。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。
61.B選項(xiàng)B先計(jì)算關(guān)系表達(dá)式“'A'<=c”的值是0還是l,再比較該值與字符'z'之間的大小關(guān)系,不能實(shí)現(xiàn)題目所要求的功能。
62.A解析:結(jié)構(gòu)化程序由3種基本結(jié)構(gòu)組成,即順序結(jié)構(gòu)、循環(huán)結(jié)構(gòu)(包括for語句、while語句及do…\u3000while語句)和選擇結(jié)構(gòu)(包括if語句和switch語句)。
63.A第一次循環(huán)返回5+5為l0,第二次循環(huán)返回l4+14為28,所以選擇A)。
64.C數(shù)據(jù)管理發(fā)展至今已經(jīng)歷了三個(gè)階段:人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中最后一個(gè)階段結(jié)構(gòu)簡單,使用方便邏輯性強(qiáng)物理性少,在各方面的表現(xiàn)都最好,一直占據(jù)數(shù)據(jù)庫領(lǐng)域的主導(dǎo)地位,所以選擇C)。
65.B
66.B一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚、低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性。
67.C數(shù)組名是一個(gè)指針常量,它的值就是數(shù)組的地址,也就是數(shù)組首元素地址。
68.D
69.D位運(yùn)算;條件判斷y>>1對(duì)循環(huán)沒有任何影響,始終為真,所以循環(huán)是一個(gè)無限循環(huán)。
70.D單一的數(shù)據(jù)結(jié)構(gòu)——關(guān)系,現(xiàn)實(shí)世界的實(shí)體以及實(shí)體間的各種聯(lián)系均用關(guān)系來表示。數(shù)據(jù)的邏輯結(jié)構(gòu)——二維表,從用戶角度,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表。但是關(guān)系模型的這種簡單的數(shù)據(jù)結(jié)構(gòu)能夠表達(dá)豐富的語義,描述出現(xiàn)實(shí)世界的實(shí)體以及實(shí)體間的各種關(guān)系。
71.C
\n本程序中的函數(shù)sort(inta[],intn)實(shí)現(xiàn)的功能是將數(shù)組a中的前n個(gè)數(shù)進(jìn)行從大到小排序。sort(&a[1],7)是將數(shù)組中從a[1]~a[7]這7個(gè)數(shù)進(jìn)行從大到小排序,其他數(shù)不變。
\n
72.C
73.B
74.B解析:整型常量有十進(jìn)制、八進(jìn)制和十六進(jìn)制3種表示:十進(jìn)制整數(shù)以正號(hào)(+)或負(fù)號(hào)(-)開頭,由首位非0的一串十進(jìn)制數(shù)字組成,正負(fù)號(hào)也可省略,表示正整數(shù);八進(jìn)制整數(shù)以數(shù)字0開頭,后面接著干個(gè)八進(jìn)制數(shù)字(0~7):十六進(jìn)制整數(shù)以數(shù)字。和字母x(大、小寫均可)開頭,后面接若干個(gè)十六進(jìn)制數(shù)字(數(shù)字0~9和字母A~F,大、小寫均可)。故本題是以無符號(hào)整數(shù)形式輸出一個(gè)十六進(jìn)制整數(shù)FFFF,將其轉(zhuǎn)換為十進(jìn)制就是65535,故本題應(yīng)該選擇B。
75.D解析:+=、-=、=等符號(hào)優(yōu)先級(jí)相同結(jié)合性是由右至左,所以選D。
76.A本題考查的知識(shí)點(diǎn)是字符常量中的轉(zhuǎn)義字符。轉(zhuǎn)義字符是以一個(gè)“\”開頭的字符序列,它只代表一個(gè)字符。在選項(xiàng)A)中,“\’,后跟著三個(gè)數(shù)字,是表示一個(gè)ASCIl碼值等于這三位數(shù)字所組成的八進(jìn)制數(shù)數(shù)值的字符,但是八進(jìn)制數(shù)只能是由0~7這八個(gè)數(shù)字表示,而選項(xiàng)A)中出現(xiàn)了數(shù)字8,所以是不合法的。選項(xiàng)B)是表示一個(gè)雙引號(hào)的轉(zhuǎn)義字符表示方法;選項(xiàng)C)表示的是一個(gè)反斜杠;選項(xiàng)D)表示一個(gè)ASCIl值為十六進(jìn)制值CC的字符。故應(yīng)該選擇A)。
77.A
78.CP指向字符串”tuesday”,因此*(P+1)的值為n。s[0]=”monday”。
79.C
\n本題考查do-while循環(huán),在fun函數(shù)中,首先定義了靜態(tài)變量i=0,do-while循環(huán)要實(shí)現(xiàn)的功能是以b[0]=b[0]+b[1],b[1]=b[1]+b[2],其他元素不變的規(guī)則重新給b數(shù)組賦值。在主函數(shù)中,通過調(diào)用fun函數(shù),按上面的規(guī)則對(duì)數(shù)組a重新賦值,最后輸出數(shù)組a。
\n
80.C學(xué)號(hào)是學(xué)生表S的主鍵,課號(hào)是課程表C的主鍵,所以選課表SC的關(guān)鍵字就應(yīng)該是與前兩個(gè)表能夠直接聯(lián)系且能唯一定義的學(xué)號(hào)和課號(hào),所以選擇C項(xiàng)。
81.
82.1intfun(char*str)2{3inti,n=0,fg=1;4char*p=str;5while(*p)/*將指針p指向字符串末尾,并統(tǒng)計(jì)字符數(shù)*/6{7n++8P++;10}10for(i=0;i2021-2022年山東省萊蕪市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.若變量已正確定義,下列正確的程序段是()。
A.while(ch=getchar()=='\N')putchar(ch);
B.while((ch=getchar())=='\n')putchar(ch);
C.while((ch=getchar())!='\N')putchar(ch);
D.while((ch=getchar())!='\n')putchar(ch);
2.有以下程序:#include<stdio.h>main(){FILE*f;f=fopen(“fllea.txt”,“w”);fprintf(f,“abc”);fclose(f);}若文本文件filea.txt中原有內(nèi)容為hello,則運(yùn)行以上程序后,文件filea.txt中的內(nèi)容為()。
A.abcloB.abcC.helloabcD.abchello
3.下列字符數(shù)組初始化語句中,不正確的是()。
A.charc[]=goodmorning;
B.charc[20]="goodmorning";
C.charc[]={a,b,c,d);
D.charc[]={"ffgoodmorning"};
4.C語言中運(yùn)算對(duì)象必須是整型的運(yùn)算符是()。
A.%=B./C.=D.<=
5.在一個(gè)有向圖中,所有頂點(diǎn)的入度之和等于所有頂點(diǎn)的出度之和的()倍。A.A.1/2B.1C.2D.4
6.棧通常采用的兩種存儲(chǔ)結(jié)構(gòu)是()。
A.順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)B.散列方式和索引方式C.鏈表存儲(chǔ)結(jié)構(gòu)和數(shù)組D.線性存儲(chǔ)結(jié)構(gòu)和非線性存儲(chǔ)結(jié)構(gòu)
7.以下程序段中的變量已正確定義:for(i=0;i<4;i++,i++)for(k=1;k<3;k++);printf(“*”);該程序段的輸出結(jié)果是()。
A.*B.****C.**D.********
8.假定a為一個(gè)整型數(shù)組名,則元素a[4]的字節(jié)地址為()。
A.a+4B.a+8C.a+16D.a+32
9.在面向?qū)ο蠓椒ㄖ?,?shí)現(xiàn)信息隱蔽是依靠()。
A.對(duì)象的繼承B.對(duì)象的多態(tài)C.對(duì)象的封裝D.對(duì)象的分類
10.有以下程序,程序中庫函數(shù)islower(ch)用以判斷ch中的字母是否為小寫字母:
程序運(yùn)行后的輸出結(jié)果是()。
A.abcdEFg!B.AbCdEFg!C.abcdEFG!D.aBcDEFG!
11.采用鄰接表存儲(chǔ)的圖的廣度優(yōu)先遍歷算法類似于二叉樹的()。A.A.先序遍歷B.中序遍歷C.后序遍歷D.按層遍歷
12.以下敘述中錯(cuò)誤的是()。
A.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題
B.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成
C.C語言是-種結(jié)構(gòu)化程序設(shè)計(jì)語言
D.結(jié)構(gòu)化程序設(shè)計(jì)提倡模塊化的設(shè)計(jì)方法
13.
有以下程序:
main
{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,
12,},{13,14,15,16}},i,j;
for(i=0;i<4;i++)
{for(j=0;j<i;j++)printf("%4c",);
for(j=________;J<4;j++)printf("%4d",num
[i][j]);
printf("\n");}}
若要按以下形式輸出數(shù)組右上半三角
1234
678
1112
16
則在程序下劃線處應(yīng)填入的是()。
A.i-1B.iC.i+1D.4一i
14.第
22
題
閱讀下面程序,則程序執(zhí)行后的結(jié)果為
#include"stdio.h"
main()
{inta=4,b=6,c=7;
doubled,fun(int,int,int);
d=fun(a,b,c);
printf("%lf\n",d);}
doublefun(inta,intb,intc)
{doubles;
s=a%b*c;
returns;}
A.27B.27.000000C.28D.28.000000
15.以下函數(shù)調(diào)用語句中含有實(shí)參個(gè)數(shù)為().func((exp1,exp2),(exp3,exp4,exp5));
A.1個(gè)B.2個(gè)C.4個(gè)D.5個(gè)
16.對(duì)于長度為n的線性表,在最壞情況下,下列各種排序法所對(duì)應(yīng)的比較次數(shù)中正確的是(
A.冒泡排序?yàn)閚/2B.冒泡排序?yàn)閚C.快速排序?yàn)閚D.快速排序?yàn)閚(n-1)/2
17.設(shè)變量n為f1oat類型,m為int類型,則以下能實(shí)現(xiàn)將n中的數(shù)值保留小數(shù)點(diǎn)后兩位,第三位進(jìn)行四舍五人運(yùn)算的表達(dá)式是()。
A.n=(n*100+0.5)/100.0
B.m=n*100+0.5,n=m/100.0
C.n=n*100+0.5/100.0
D.n=(n/100+0.5)*100.0
18.有以下程序#definef(x)x*xmain(){inti;i=f(4+4)/f(2+2);printf(“%d\n”,i);}執(zhí)行后輸出結(jié)果是()A.28B.22C.16D.4
19.若已定義inta,則表達(dá)式a=10,a+10,a++的值是()。
A.20B.10C.21D.11
20.第
42
題
若有說明語句
chara[]="Itismine";
char*p="Itismine";
則以下不正確的敘述是
A.a+1表示的是字符t的地址
B.p指向另外的字符串時(shí),字符串的長度不受限制
C.p變量中存放的地址值可以改變
D.a中只能存放10個(gè)字符
二、2.填空題(20題)21.以下程序的功能是輸入任意整數(shù)給n后,輸出n行從大寫字母A開始構(gòu)成的三角形字符陣列圖形。例如,輸入整數(shù)5時(shí)(注意:n不得大于10),程序運(yùn)行結(jié)果如下:
ABCDE
FCHI
JKL
MN
O
請(qǐng)?zhí)羁胀瓿稍摮绦颉?/p>
#include<stdio.h>
main()
inti.j,n;charch='A';
scanf("%d",&n);
if(n<11)
for(i=1;i<=n;i++)
for(j=1;j<=n-i+1;j++)
{printf("%2c",ch);
【】;
}
【】;
}
elseprintf("nistoolarge!\n");
prinff("\n");
}
22.以下程序運(yùn)行后的輸出結(jié)果是______。
main()
{
intx=10,y=20,t=0
if(x==y)t=x;x=y;y=t;
printf("%d,%d/n",x,y);
}
23.下面程序的運(yùn)行結(jié)果是______。
main()
{inti=0,j=10,k=2,s=0;
{i+=k;
if(i>j)
{printf("%d\n",s);
break;}
s+=i;}}
24.設(shè)有如下程序main(){intn1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(“%d”,n1);}}程序運(yùn)行后,如果從鍵盤上輸入1298,則輸出結(jié)果為
25.若a的值為1,則表達(dá)式!a‖++a的值是______。
26.在對(duì)文件操作的過程中,若要求文件的位置指針回到文件的開始處,應(yīng)當(dāng)調(diào)用的函數(shù)是【】。
27.以下程序的定義語句中,x[1]的初值是【】,程序運(yùn)行后輸出的內(nèi)容是【】。
#include<stdio.h>
main()
{intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;
for(i=0;i<4;i++)
{p[i]=&x[2*i+1];
printf("%d",p[i][0]);
}
printf("\n");)
}
28.下列程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
main()
{inta=10,b=3;
printf("%d,",a%B);
printf("%d,",(a-b,a+B));
printf("%dLn",a-b?a-b:a+B);
}
29.下列程序的輸出結(jié)果是______。
#include<stdio.h>
main()
{intx=10,y=10,i;
for(i=0;x>8;y=++i)
printf("%d%d",x--,y);
}
30.函數(shù)delete(s,i,n)是作用是從字符串s中刪除從第i個(gè)字符開始的n個(gè)字符,請(qǐng)?zhí)羁铡?/p>
voiddelete(chars[],inti,intn)
{intj,k,length=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';
}
31.表示“整數(shù)x的絕對(duì)值大于5”時(shí)值為“假”的C語言表達(dá)式是______。
32.近年來形成了軟件開發(fā)的多種模式,大致有3種類型:基于瀑布模型的結(jié)構(gòu)化生命周期方法、基于動(dòng)態(tài)定義需求的【】方法和基于結(jié)構(gòu)的面向?qū)ο蟮能浖_發(fā)方法。
33.棧的3種基本運(yùn)算是:入棧、退棧和______。
34.下面程序由兩個(gè)源程序文件:t4.h和t4.c組成,程序編譯運(yùn)行的結(jié)果是:【】。
t4.h的源程序?yàn)椋?/p>
#defineN10
#dennef2(x)(x*N)
t4.c的源程序?yàn)椋?/p>
#include<stdio.h>
#defineM8
#definef(x)((x)*M)
#include"t4.h"
#main()
{inti,j;
i=f(1+1);j=f2(1+1);
printf(%d%d\n",i,j);
}
35.若有語句:
inti=-19,j=i%4;
printf("%d\n",j);
則輸出結(jié)果是【】。
36.算法的基本特征是可行性、確定性、【】和擁有足夠的情報(bào)。
37.以下程序的輸出結(jié)果是【】。
main()
{inty=9;
for(;y>0;y--)
if(y%3==0)
{printf("%d",--y);continue;}}
38.已知字符A的ASCⅡ代碼值為65,以下程序運(yùn)行時(shí)若從鍵盤輸入:B33<回車>.則輸出結(jié)果是()。
#include
main()
{chara,b;
a=getchar();scanf("%d",&B);
a=a-'A'+'0';b=b*2;
printf("%c%c\n",a,B);
}
39.以下程序的功能是輸出如下形式的方陣:
13141516
9101112
5678
1234
請(qǐng)?zhí)羁铡?/p>
main()
{inti,j,x;
for(j=4;j>0;j--)
{for(i=1;i<=4;i++)
{x=(j-1)*4+【】;
printf("%4d",x);
}
printf("\n");
}
}
40.以下程序的輸出結(jié)果是【】。
main()
{ints,i;
for(s=0,i=1;i<3;i++,s+=i;
printf(“%d\n”,s);
}
三、1.選擇題(20題)41.有以下程序#include<stdio.h>main(){ints[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;for(i=0;i<12;i++)c[s[i]++;for(i=l;i<5;i++)printf("%d",c[i]);printf("\n");}程序的運(yùn)行結(jié)果是
A.1234B.2344C.4332D.1123
42.下面程序的運(yùn)行結(jié)果是
#include<stdio.h>
main()
{staticchara[]="Languagef",b[]="programe";
char*p1,*p2;intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))printf("%c",*(p1+k));}
A.gaeB.gaC.LanguageD.有語法錯(cuò)
43.以下敘述中正確的是()。
A.預(yù)處理命令行必須位于C源程序的起始位置
B.在C語言中,預(yù)處理命令行都以“#”開頭
C.每個(gè)C程序必須在開頭包含預(yù)處理命令行:#include<stdio.h>
D.C語言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能
44.下列程序的運(yùn)行結(jié)果為#include<stdio.h>voidabc(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
45.開發(fā)軟件時(shí)對(duì)提高開發(fā)人員工作效率至關(guān)重要的是()
A.操作系統(tǒng)的資源管理功能B.先進(jìn)的軟件開發(fā)工具和環(huán)境C.程序人員的數(shù)量D.計(jì)算機(jī)的并行處理能力
46.當(dāng)k的值不為0時(shí),在下列選項(xiàng)中能夠?qū)的值賦給變量m,n的是
A.m=k=n
B.(m=k)&&(n=k)
C.(m=k)||(n=k)
D.(k=m)&&(n=k)
47.有以下程序
#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");
}
程序的運(yù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,
48.以下選項(xiàng)中可作為C語言合法常量的是
A.-80B.-080C.-8e1.0D.-80.0e
49.按照“先進(jìn)先出”組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是()。
A.隊(duì)列B.棧C.雙向鏈表D.二叉樹
50.若有定義和語句:int**pp,*p,a=20,b=1O;pp=&p;p=&a;p=&b;printf("%d,%d\n",*p,**pp);則輸出結(jié)果是()。
A.20,10B.20,20C.10,20D.10,10
51.以下對(duì)枚舉類型名的定義中正確的是______。
A.enuma={one,two,three};
B.enuma{on=9,two=-1,three};
C.enuma={"one","two","three"};
D.enuma{"one","two","three"};
52.若已定義x和y為double類型,則表達(dá)式:x=1,y=x+3/2的值是()A.1B.2C.2.0D.2.5
53.設(shè)有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);則
A.運(yùn)行程序段后輸出0B.運(yùn)行程序段后輸出1C.程序段中的控制表達(dá)式是非法的D.程序段執(zhí)行無限次
54.若變量已正確定義,有以下程序段:i=0;doprinntf("%d,i");while(i++);printf("%d\n",i);其輸出結(jié)果是()。
A.0,0B.0,1C.1,1D.程序進(jìn)入無限循環(huán)
55.對(duì)于一個(gè)正常運(yùn)行的C語言程序,以下敘述中正確的是()。
A.程序的執(zhí)行總是從main函數(shù)開始,在main函數(shù)結(jié)束
B.程序的執(zhí)行總是從程序的第一個(gè)函數(shù)開始,在main函數(shù)結(jié)束
C.程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個(gè)函數(shù)中結(jié)束
D.程序的執(zhí)行總是從程序的第一個(gè)函數(shù)開始,在程序的最后一個(gè)函數(shù)中結(jié)束
56.下列描述說明正確的是()
A.定義結(jié)構(gòu)體時(shí),它的每個(gè)成員的數(shù)據(jù)類型可以不同
B.不同結(jié)構(gòu)體的成員名不能相同
C.結(jié)構(gòu)體定義時(shí),其成員的數(shù)據(jù)類型不能是結(jié)構(gòu)體本身
D.結(jié)構(gòu)體定義時(shí)各成員項(xiàng)之間可用分號(hào)也可用逗號(hào)隔開
57.設(shè)有關(guān)系R和S,關(guān)系代數(shù)表達(dá)式為R-(R-S)表示的是
A.R∩SB.R-SC.R∪SD.R÷S
58.若有以下定義,則表達(dá)式a*b+d-c值的類型為______。chara;intb;floatc;doubled;
A.floatB.intC.charD.double
59.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inta=4printf("%d\n",(a+=a-=a*A));}
A.-8B.14C.0D.-24
60.有以下程序main(){unsignedchara,b;a=4|3;b=4&3;printf("%d%d\n",a,b);}執(zhí)行后的輸出結(jié)果是
A.70B.07C.11D.430
四、選擇題(20題)61.已有定義:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判斷c中的字符是否為大寫字母的表達(dá)式是()。A.A.isupper(c)B.'A'<=c<='Z'
C.'A'<=c&&c<='Z'
D.c<=('z'-32)&&('a'-32)<=c
62.C語言中用于結(jié)構(gòu)化程序設(shè)計(jì)的三種基本結(jié)構(gòu)是A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
B.if、switch、break
C.for、while、do-while
D.if、for、continue
63.有以下程序
64.在數(shù)據(jù)管理技術(shù)發(fā)展的三個(gè)階段中,數(shù)據(jù)共享最好的是()。
A.人工管理階段B.文件系統(tǒng)階段C.數(shù)據(jù)庫系統(tǒng)階段D.三個(gè)階段相同
65.
66.軟件設(shè)計(jì)中劃分模塊的一個(gè)準(zhǔn)則是()。A.低內(nèi)聚低耦合B.高內(nèi)聚低耦合C.低內(nèi)聚高耦合D.高內(nèi)聚高耦合
67.用數(shù)組名作為函數(shù)調(diào)用的實(shí)參,則傳遞給形參的是()。
A.數(shù)組中所有元素的值B.數(shù)組的第一個(gè)數(shù)據(jù)C.數(shù)組的首地址D.數(shù)組元素的個(gè)數(shù)
68.
69.有以下程序:
voidmain()
{
inty=10;
while(y>>1){printf("y=%d\n",y);}
}
程序執(zhí)行后的輸出結(jié)果是()。
A.y=0
B.y=-1
C.y=1
D.while構(gòu)成無限循環(huán)
70.在關(guān)系數(shù)據(jù)庫中,用來表示實(shí)體間聯(lián)系的是()。
A.網(wǎng)狀結(jié)構(gòu)B.樹狀結(jié)構(gòu)C.屬性D.二維表
71.
下列程序中函數(shù)sort()的功能是對(duì)數(shù)組a中的數(shù)據(jù)進(jìn)行由大到小的排序。
#include<stdio.h>
voidsort(inta[],intll)
{inti,j,t;
for(i=0;i<n-1;i++)
for(j=j+1+1;j<n;j++)
if(a[i]<a[j])
{t=a[i];a[i]=a[j];a[j]=t;
}
}
main()
{in
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版苗木種植與農(nóng)業(yè)綜合開發(fā)合同樣本4篇
- 二零二五年度教育培訓(xùn)股東股權(quán)轉(zhuǎn)讓與合作辦學(xué)合同2篇
- 二零二五版嬰幼兒奶粉國際市場拓展與出口合同4篇
- 2025版綠色環(huán)保型商品房預(yù)售買賣合同3篇
- 2025年度校服品牌授權(quán)與校園形象塑造合同3篇
- 2025年度事業(yè)單位合同工勞動(dòng)法執(zhí)行監(jiān)督評(píng)估合同3篇
- 2025年度生鮮配送冷鏈物流承包合同范本3篇
- 2025年度個(gè)人傭金提成與長期激勵(lì)合同2篇
- 課題申報(bào)參考:能源數(shù)據(jù)要素賦能可再生能源電力生產(chǎn)的機(jī)制與對(duì)策研究
- 課題申報(bào)參考:民族傳統(tǒng)體育與體育非物質(zhì)文化遺產(chǎn)的傳承與保護(hù)研究
- 2025年N1叉車司機(jī)考試試題(附答案)
- 《醫(yī)院財(cái)務(wù)分析報(bào)告》課件
- 2025老年公寓合同管理制度
- 2024-2025學(xué)年人教版數(shù)學(xué)六年級(jí)上冊 期末綜合卷(含答案)
- 2024中國汽車后市場年度發(fā)展報(bào)告
- 感染性腹瀉的護(hù)理查房
- 天津市部分區(qū)2023-2024學(xué)年高二上學(xué)期期末考試 物理 含解析
- 《人工智能基礎(chǔ)》全套英語教學(xué)課件(共7章)
- GB/T 35613-2024綠色產(chǎn)品評(píng)價(jià)紙和紙制品
- 2022-2023學(xué)年五年級(jí)數(shù)學(xué)春季開學(xué)摸底考(四)蘇教版
- 【螞蟻?!?024中國商業(yè)醫(yī)療險(xiǎn)發(fā)展研究藍(lán)皮書
評(píng)論
0/150
提交評(píng)論