版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2021年四川省廣安市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.關(guān)系數(shù)據(jù)庫的數(shù)據(jù)及更新操作必須遵循()等完整性規(guī)則。
A.實體完整性和參照完整性
B.參照完整性和用戶定義的完整性
C.實體完整性和用戶定義的完整性
D.實體完整性、參照完整性和用戶定義的完整性
2.以下敘述中正確的是()。
A.C程序中注釋部分可以出現(xiàn)在程序中任意合適的地方
B.花括號"{"和"}"只能作為函數(shù)體的定界符
C.構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名
D.分號是C語句之間的分隔符,不是語句的一部分
3.函數(shù)調(diào)用strcat(strcpy(str1,str2),str3)的功能是()。
A.將字符串str1復制到字符串str2中后再連接到字符串str3之后
B.將字符串str1連接到字符串str2之后再復制到字符串str3之后
C.將字符串str2復制到字符串str1之后再將字符串str3連接到字符串str1之后
D.將字符串str2連接到字符串str1之后再將字符串strl復制到字符串str3中
4.已定義c為字符型變量,則下列語句中正確的是()。
A.c='97'B.c="97"C.c=97D.c="a"
5.有以下程序
#include<stdio.h>
main()
{inta=1,b=0;
if(--a)b++;
elseif(a==0)b+=2;
elseb+=3:
printf("%d\n",b);
}
程序運行后的輸出結(jié)果是A.A.0B.1C.2D.3
6.有以下程序:voidswap(char*x,char*y){chart;t=*x;*x=*y;*y=t;}main{char*s1="abe",*s2="123":swap(s1,s2);printf("%s,%s\n",s1,s2);}程序執(zhí)行后的輸出結(jié)果是()。A.123,abeB.abc.123C.1bc,a23D.321,cba
7.計算機系統(tǒng)的組成是______。
A.主機、外設(shè)B.運算器、控制器C.硬件系統(tǒng)和軟件系統(tǒng)D.CPU、內(nèi)存儲器
8.數(shù)據(jù)庫設(shè)計包括兩個方面的設(shè)計內(nèi)容,它們是()
A.概念設(shè)計和邏輯設(shè)計B.模式設(shè)計和內(nèi)模式設(shè)計C.內(nèi)模式設(shè)計和物理設(shè)計D.結(jié)構(gòu)特性設(shè)計和行為特性設(shè)計
9.以下選項中,不能作為合法常量的是
A.1.234e04B.1.234e0.4C.1.23E+4D.1.234e0
10.有以下程序
#include<stdio.h>
main()
{structnode{intn;structnode*next;}*p;
structnodex[3]={{2,x+1},{4,x+2},{6,NULL}};
p=x:
printf("%d,",p->n);
printf("%d\n",P->next->n);
}
程序運行后的輸出結(jié)果是A.A.2,3B.2,4C.3,4D.4,6
11.有以下程序intf(intA){returna%2;}main(){ints[8]={1,3,5,2,4,6),i,d=0;for(i=0;f(s[i];i++)d+=s[i];printf("%d\n",D);}程序運行后的輸出結(jié)果是
A.9B.11C.19D.21
12.由3個結(jié)點可以構(gòu)造出______種不同形態(tài)的二叉樹。
A.3B.4C.5D.6
13.樹最適合用來表示()。
A.有序數(shù)據(jù)元素B.無序數(shù)據(jù)元素C.元素之間具有分層次關(guān)系的數(shù)據(jù)D.元素間無聯(lián)系的數(shù)據(jù)
14.下列語句組中,正確的是()。
15.有以下程序程序執(zhí)行后的輸出結(jié)果是()。
A.y=-IB.y=oC.y=lD.while構(gòu)成無限循環(huán).
16.
有以下程序:
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
則在程序下劃線處應填入的是()。
A.i-1B.iC.i+1D.4一i
17.若執(zhí)行下列的程序時,從鍵盤上輸入1和2,則輸出結(jié)果是()。
#include<stdio.h>
main()
{inta,b,s;
scanf("%d%d",&a,&B);
S=a;
if(a<B)s=b;
s=s*s;
printtf("%d\n",s);
}
A.1B.4C.2D.9
18.排序方法中,從未排序序列中依次取出元素與已排序序列中的元素進行比較,將其放入已排序序列的正確位置上的方法,稱為()。
A.希爾排序B.冒泡排序C.插入排序D.選擇排序
19.若有定義“chars1[100]=“name”,s2[50]=“address”,s3[80]=“person”;”,要將它們連接成新串“personnameaddress”,正確的函數(shù)調(diào)用語句是()。
A.strcat(strcat(s1,s2),s3);
B.strcat(s3,strcat(s1,s2);
C.strcat(s3,strcat(s2,s1);
D.strcat(strcat(s2,s1),s3);
20.
二、2.填空題(20題)21.耦合和內(nèi)聚是評價模塊獨立性的兩個主要標準,其中______反映了模塊內(nèi)各成分之間的聯(lián)系。
22.下面程序的輸出結(jié)果是【】。
#defineMAX3
inta[MAX];
main()
{fun1();{un2(A);printf("\n");}
funl()
{intk,t=0;
for(k=0;k<MAX;k++,t++)a[k]=t+t;
}
fun2(intb[])
{intk;
for(k=0;k<MAX;k++)printf("%d",*(b+k));
}
23.以下程序運行后的輸出結(jié)果是()。main(){inta,b,c;a=10;b=20;c=(a/b<1)&&(a%b<1);printf("%d%d%d\n",a,b,C);}
24.Jackson結(jié)構(gòu)化程序設(shè)計方法是英國的M.Jackson提出的,它是一種面向______的設(shè)計方法。
25.注釋一般分為序言性注釋和______注釋。
26.以下程序的功能是將字符串s中的數(shù)字字符放入d數(shù)組中,最后輸出d中的字符串。例如,輸入字符串:abcl23edf456gh,執(zhí)行程序后輸出:123456。請?zhí)羁铡?/p>
#include<stdioo.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);
27.測試用例包括輸入值集和【】值集。
28.下列程序的運行結(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.下面程序有兩個printf語句,如果第一個printf語句輸出的是194,則第二個printf語句的輸出結(jié)果是【】。
main()
{inta[10]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%x\n",p);
printf("%\n",p+9);
}
30.以下程序中,函數(shù)fun的功能是計算x2-2x+6,主函數(shù)中將調(diào)用fun函數(shù)計算:
y1=(x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6
請?zhí)羁铡?/p>
ginclude"math.h"
doublefun(doublex){return(x*x-2*x+6);}
main()
{doublex,y1,y2;
pfintf("Enterx:");scanf("%lf"&x);
y1=fun([10]);y2=fun([11]);
pin
31.以下函數(shù)用來在w數(shù)組中插入x,w數(shù)組中的數(shù)已按由小到大的順序存放,n為數(shù)組中存放的數(shù)的個數(shù)。插入后數(shù)組中的個數(shù)仍然有序。請?zhí)羁?,使之完整?/p>
voidfun(char*w,charx,int*n)
{inti,p;
p=0;
w[*n]=x;
whiel(x>w[p])【】;
for(i=*n;i>p;i--)w[i]=【】;
w[p]=x;
++*n;
}
32.算法的復雜度主要包括時間復雜度和______復雜度。
33.若有定義doublea[5];,則a數(shù)組元素下標的上限為______。
34.下列程序的運行結(jié)果為【】。
#include<stdio.h>
main()
{staticcharstr1[40];
charstr2140];
strcpy(str2,"China");
strcat(str1,str2);
strcat(str1,"isagreatcountry!");
printf("%s%s",str2,strl);
printf("%d%d\n",strlen(str2),strlen(str1));
}
35.下面程序的功能是將一個字符串str的內(nèi)容顛倒過來,請?zhí)羁铡?/p>
#include<string.h>
main()
{infi,j,[13];charstr[]={"1234567"};
for(i=0,j=strlen(str)[14];i<j;i++,j--)
{k=str[i];str[i]=str[i];str[j]=k;}
printf("%s\n",str);}
36.在內(nèi)存中,存儲字符'x'要占用1個字節(jié),存儲字符串"x"要占用【】個字節(jié)。
37.實現(xiàn)程序可將磁盤中的一個文件復制到另一個文件中,兩個文件的文件名在可執(zhí)行命令的命令行中(相當于copy命令),假定文件在當前目錄下。請補全程序。
#include<stdio.h>
voidmain(intargc,char*argv[])
{FILE*f1,*f2;
if(argc<【】)
{printf("parametererror!\n");exit(0);}
f1=fopen(argv[1],"r");
f2=fopen(argv[2],"w");
while(【】)fputc(fgetc(f1),f2);
fclose(f1);
fclose(f2);
}
38.下面程序把從終端讀入的10個整數(shù)以二進制方式寫入一個名為bi.dat的新文件中。
#include<stdio.h>
FILE*fp;
main()
{inti,j;
if(fp=fopen(【】)==NULL)exit(0);
for(i=0;i<10;i++)
{scanf("%d",&j);
fwrite(&j,sizeof(int),1,【】;
}
fclose(fp);
}
39.軟件測試中路徑覆蓋測試是整個測試的基礎(chǔ),它是對軟件【】進行測試。
40.排序是計算機程序設(shè)計中的一種重要操作,常見的排序方法有插入排序、______和選擇排序。
三、1.選擇題(20題)41.字符‘0’的ASCⅡ碼的十進制數(shù)為48,且數(shù)組的第0個元素在低位,則以下程序的輸出結(jié)果是______。#include<stdio.h>main(){union{inti[2];longk;charc[4];}r,*s=&r;s->i[0]=0x39;s->i[1]=0x38;printf("%c\n",s->c[0]);}
A.39B.9C.38D.8
42.設(shè)有定義:intk=0;,下列選項的4個表達式中與其他3個表達式的值不相同的是()。
A.k++B.k+=1C.#NAME?D.k+1
43.閱讀下面程序,則執(zhí)行后的結(jié)果為#include"stdio.h"longfun(intn){if(n>2)return(fun(n-1)+fun(n-2));elsereturn(2);}main(){printf("%ld\n",fun(5));}
A.10B.15C.20D.以上3個答案都不正確
44.一棵二叉樹中共有70個葉子結(jié)點與80個度為1的結(jié)點,則該二叉樹中的總結(jié)點數(shù)為()。
A.221B.219C.231D.229
45.若有說明:inta[][3]={0,0};則不正確的敘述是()。
A.數(shù)組a的每個元素的初值都是0
B.數(shù)組a的第一維大小為1
C.數(shù)組a的行數(shù)為1
D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
46.當執(zhí)行下面的程序時,如果輸入“ABC”,則輸出結(jié)果是_____。#include"stdio.h"#include"string.h"main(){charss[10]="1,2,3,4,5";gets(ss);strcat(ss,"6789");printf("%s\n",ss);}
A.ABC6789B.ABC67C.12345ABC6D.ABC456789
47.下列程序的運行結(jié)果是()。main(){inta=-5,b=1,c=1;intx=0,Y=2,z=0;if(c>0)x=x+y;if(a<=0){if(b>0)if(c<=0)y=x-y;}elseif(c>0)Y=x-y;elsez=y;printf("%d,%d,%d\n",x,y,z);}
A.2,2,0B.2,2,2C.0,2,0D.2,0,2
48.在執(zhí)行完下列的C語句段之后,則B的值是()。Chara="A";intb;B=((34&&56)&&(a<'b'));
A.int類型B.float類型C.void類型D.函數(shù)無類型說明,定義有錯
49.以下能正確定義數(shù)組并正確賦初值的語句是______。
A.intN=5,b[N=[N];
B.inta[1][2]={{1},{3}};
C.intc[2][]={{1,2},{3,4}};
D.intd[3][2]={{1,2},{34}};
50.有以下程序:main(){chara1='M',a2='m';printf("%c\n",(a1,a2));}以下敘述中正確的是()。
A.程序輸出大寫字母MB.程序輸出小寫字母mC.格式說明符不足,編譯出錯D.程序運行時產(chǎn)生出錯信息
51.設(shè)有定義:intk=1,m=2;floatf=7;則以下選項中錯誤的表達式是()。
A.k=k>=kB.-k++C.k%int(f)D.k>=f>=m
52.以下選項中,當x為大于l的奇數(shù)時,值為0的表達式是
A.x%2==1B.x/2C.x%2!=0D.x%2==0
53.下列程序執(zhí)行后的輸出結(jié)果是main(){inta[3][3],*p,i;p=&a[0][0];for(i=1;i<9;i++)p[i]=i+1;printf("%d\n",a[1][2]);}
A.3B.6C.9D.隨機數(shù)
54.有以下程序:#include<stdio.h>main(){intm,n,p;seanf("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
55.以下敘述中錯誤的是
A.sets函數(shù)用于從終端讀入字符串
B.getchar函數(shù)用于從磁盤文件讀入字符
C.fputs函數(shù)用于把字符串輸出到文件
D.fwfite函數(shù)用于以二進制形式輸出數(shù)據(jù)到文件
56.若變量已正確定義,以下while循環(huán)不斷輸出讀入的字符,當讀入回車換行符時結(jié)束循環(huán)。正確的程序段是
A.while(ch=getchar()=='\N')putchar(ch);
B.while(ch=getchar())=='\N')putchar(ch);
C.whle((ch=getchar())!='\N')putchaf(ch);
D.while((ch=getchar())!='\N')putchar(ch);
57.設(shè)有下列二叉樹:
對此二叉樹后序遍歷的結(jié)果為
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
58.整型變量X和Y的值相等,且為非0值,則以下選項中結(jié)果為0的表達式是______。
A.X||YB.X|YC.X&YD.xy
59.有以下程序段:intk=0,a=1,b=2,c=3;k=a<b?b:a;k=k>c?c:k;執(zhí)行該程序段后,k的值是______。A.3B.2C.1D.0
60.以下函數(shù)值的類型是_______。fun(floatx){floaty;y=3*x-4;returny;}
A.intB.不確定C.voidD.float
四、選擇題(20題)61.支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是()。A.棧B.樹C.隊列D.--X樹
62.軟件開發(fā)中需求分析的主要任務是()。
A.定義和描述目標系統(tǒng)“做什么”B.獲取需求C.給出軟件解決方案D.需求評審
63.以下敘述中錯誤的是()。
A.C程序在運行過程中所有計算都以二進制方式進行
B.C程序在運行過程中所有計算都以十進制方式進行
C.所有C程序都需要編譯鏈接無誤后才能運行
D.C程序中字符變量存放的是字符的ASCIl碼值
64.下列選項中不合法的十六進制數(shù)是()。
A."0"xffB."0"X11C."0"x1gD.”0”Xabc
65.
66.在以下選項中,能正確調(diào)用對象屬性的語句是()。
A.對象名(屬性名)B.對象名一>屬性名C.對象名屬性名D.對象名.屬性名
67.設(shè)有如下函數(shù)定義:
若執(zhí)行調(diào)用語句“l(fā)l=fm(3);”,則函數(shù)tim總共被調(diào)用的次數(shù)是()。
A.2B.3C.4D.5
68.
69.算法的空間復雜度是指()。
A.算法在執(zhí)行過程中所需要的計算機存儲空間
B.算法所處理的數(shù)據(jù)量
C.算法程序中的語句或指令條數(shù)
D.算法在執(zhí)行過程中所需要的臨時工作單元數(shù)
70.下面程序段的運行結(jié)果是char*p="abcdefgh";p+=3;printf("%d\n",strlen(strcpy(p,"ABCD")));
A.8B.12C.4D.7
71.
72.以下關(guān)于字符串的敘述中正確的是()。
A.空串比空格打頭的字符串小
B.兩個字符串中的字符個數(shù)相同時才能進行字符串大小的比較
C.可以用關(guān)系運算符對字符串的大小進行比較
D.C語言中有字符串類型的常量和變量
73.下列語句中,正確地執(zhí)行當i等于5時執(zhí)行一些語句的條件語句是()。
A.if(i==5)B.ifi=5thenC.ifi=5D.ifi==5then
74.以下選項中正確的語句組是()。
75.以下敘述中正確的是()。
A.c語言規(guī)定必須用main作為主函數(shù)名,程序?qū)拇碎_始執(zhí)行
B.可以在程序中由用戶指定任意一個函數(shù)作為主函數(shù),程序?qū)拇碎_始執(zhí)行
C.c語言程序?qū)脑闯绦蛑械谝粋€函數(shù)開始執(zhí)行、
D.main的各種大小寫拼寫形式都可以作為主函數(shù)名,如MAIN,Main等
76.軟件需求分析一般應確定的是用戶對軟件的______。
A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求
77.下列描述錯誤的是()。
A.繼承分為多重繼承和單繼承
B.對象之問的通信靠傳遞消息來實現(xiàn)
C.在外面看不到對象的內(nèi)部特征是基于對象的“模塊獨立性好”這個特征
D.類是具有共同屬性、共同方法的對象的集合
78.
79.設(shè)計軟件結(jié)構(gòu)是軟件生命周期的()。
A.軟件定義期B.軟件開發(fā)期C.軟件維護期D.以上3個都不是
80.有以下程序
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是計算正整數(shù)m
各位上數(shù)字的平方和。例如,輸入498,則輸出應該是161。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>longproc(10ngm){//****found****longsum=1;do{sum+=(m%10)*(m%10);m/=l0;//****found****}while(m)return(sum);}voidmain{longn;system("CLS");printf("Pleaseenteranumber:");scanf("%1d",&n);printf("\n%ld\n",proc(n));}
六、程序設(shè)計題(1題)82.請編寫函數(shù)proc(),其功能是:將str所指字符串中下標為偶數(shù)的字符刪除,串中剩余字符形成的新串放在t所指數(shù)組中。
例如,當str所指字符串中的內(nèi)容為abcdefg,則在t所指數(shù)組中的內(nèi)容應是bdf。
注意:部分源程序給出如下。
請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。
試題程序:
參考答案
1.D解析:關(guān)系模型中包括關(guān)系的數(shù)據(jù)結(jié)構(gòu)、關(guān)系的操縱和關(guān)系中的數(shù)據(jù)約束。關(guān)系完整性約束即數(shù)據(jù)完整性,包括實體完整性、參照完整性和用戶自定義完整性。
2.A解析:/*與*/之間的信息稱為注釋信息,在C語言中,允許在任何能夠插入空格符的位置插入注釋,但C語言的注釋不能進行嵌套,故選項A正確:在C語言中,函數(shù)體是從花括號{開始,到花括號}結(jié)束。但沒有規(guī)定花括號{和}只能作為函數(shù)體定界符,故選項B錯誤;選項C中前半句是正確的,C程序由一個或多個函數(shù)所組成,但不是所有的函數(shù)都由用戶自己命名,有些函數(shù),比如主函數(shù)main()就不能由用戶來命名,故選C不正確;在C語言中明確規(guī)定每條語句以分號;結(jié)束,分號是語句不可缺少的一部分,故選項D不正確。所以,4個選項中選項A符合題意。
3.Cstrcat(s1,s2)函數(shù)的功能是把s2字符串連接到s1字符串末尾,strcpy(s1,s2)是把s2字符串復制到s1字符串,要保證sl的容量。
4.C解析:本題考核的知識點是字符型變量的基本概念。用單引號括起來的一個字符稱為字符常量,而選項B和選項D中用的是雙引號,而用雙引號括起來的字符為字符串常量,故選項B和選項D不正確。因為在C語言中,字符常量在存儲時,并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的相應的ASCII代碼放到存儲單元中,所以C語言使字符型數(shù)據(jù)和整形數(shù)據(jù)之間可以通用,選項C正確.而選項A中,給字符型變量賦值時只能賦一個字符,而9,7作為字符時為兩個字符且必須分別為單引號括起來,故選項A不正確,所以,4個選項中選項C符合題意。
5.C解析:本題考察運算符和選擇語句,執(zhí)行到if語句時,--a為0,所以不會執(zhí)行后面的語句,但是會執(zhí)行elseif后面的語句,所以執(zhí)行后,b=2,選項C)正確。
6.C本題考查swap函數(shù),它的作用是把x、Y所指的內(nèi)容互換,其他的不變,因此當執(zhí)行完調(diào)用函數(shù)后,僅僅a與1互換,其他的沒有變。
7.C
8.A解析:模式設(shè)計和內(nèi)模式設(shè)計是概念設(shè)計的兩種方法。物理設(shè)計是根據(jù)特定的計算機系統(tǒng),對數(shù)據(jù)的存儲結(jié)構(gòu)和存取方法進行設(shè)計,從而實現(xiàn)從邏輯結(jié)構(gòu)到物理結(jié)構(gòu)的轉(zhuǎn)換。從系統(tǒng)開發(fā)的角度來看,結(jié)構(gòu)特性設(shè)計和行為特性-設(shè)計是數(shù)據(jù)庫應用系統(tǒng)所具有的兩個特性。結(jié)構(gòu)特性的設(shè)計,設(shè)計各級數(shù)據(jù)庫模式(靜態(tài)特性):行為特性的設(shè)計,改變實體及其特性,決定數(shù)據(jù)庫系統(tǒng)的功能(動態(tài)特性)。
9.B解析:C語言的語法規(guī)定,字母e(E)之前必須有數(shù)字,且e(E)后面的指數(shù)必須是整數(shù),而選項B)中,e(E)后面的指數(shù)是小數(shù),所以不合法。
10.B解析:p指向x的第一個元素,所以p->n的值為2,p->next指向x+1,即指向x的第二個元素,所以p->next->n為4。
11.A解析:本題考核的知識點是一維數(shù)組的定義,初始化和數(shù)組中元素的引用。函數(shù)f()的作用是形參a為偶數(shù)的時候返回0,主函數(shù)中首先定義了一個長度為8的一維數(shù)組,然后給它賦初值使得s[0]=1、a[1]=3、s[2]=5、s[3]=2、s[4]=4、s[5]=6.其他沒有賦值的數(shù)組元素將自動賦值為0。for循環(huán)中,當s[1]不為偶數(shù)的時,將s[i]相加,即當i=3時,s[i]=2為偶數(shù),退出循環(huán),此時d的值為d=s101+s[1]+s[2]=1+3+5=9,因此最后輸出的d的值為9。所以,4個選項中選項A符合題意。
12.C難易程度:易
13.C
14.A字符型指針變量可以用選項A)的賦值方法:char*s;s=”O(jiān)lympictt;,選項C)的寫法:char*s,s={1.Olympic”};是錯誤的。字符數(shù)組可以在定義的時候初始化:chars[]_IfIOlympic”l;或者chars[]=”O(jiān)lympic'1.都是正確的,但是不可以在定義字符數(shù)組后,對數(shù)組名賦值(數(shù)組名是常量,代表數(shù)組首地址)。所以選項B)和選項D)都是錯誤的。對于本例,選項B)、D)中字符數(shù)組S的大小至少為8,才能存放下字符串(字符串的末尾都有結(jié)束標志“\0”)。
15.A當y為。時,表達式y(tǒng)一才為假,循環(huán)結(jié)束,最終y的值為一l,所以答案選擇A)。
16.B
\n本題中要求輸出右上半角的數(shù),對角線上的數(shù)的下標相同,所以j=i。
\n
17.B解析:本題考查if語句。scanf函數(shù)通過鍵盤讀入a、b的值,a=1,b=2。第一個if語句,先判斷條件,發(fā)現(xiàn)a<b條件成立,則s=b=2,s=s*s=4。
18.C
19.Bstrcat函數(shù)是字符串連接函數(shù),調(diào)用形式為strcat(s1,s2)。其功能是將s2指向的字符串的內(nèi)容連接到s1指向的存儲空間中,并返回s1的地址。由題意可知,新串首地址為s3,所以s3應該是第一參數(shù),選項A、D錯誤。同理,新串中除了S3所指的字符串,剩下的字符串為“nameaddress”,即首地址為s1,所以調(diào)用strcat函數(shù),s1是第一參數(shù)。所以正確的函數(shù)調(diào)用語句為“strcat(s3,strcat(s1,s2))”。故本題答案為B選項。
20.C
21.內(nèi)聚內(nèi)聚
22.24
23.1020010200解析:本題考查的是混合運算?!?a/b<1)&&(a%b<1)”的運算順序為:括號>算術(shù)運算符>關(guān)系運算符>邏輯運算符。其中a%b=10,a,b=0,所以a%b<1的值為0,a/b<1的值為1,故整個表達式的結(jié)果為0,所以輸出的a,b,c的值為10200。
24.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)
25.功能性功能性解析:注釋一般分為序言性注釋和功能性注釋。序言性注釋通常位于每個程序的開頭部分,給出程序的整體說明;功能性注釋一般嵌在源程序體之中,主要描述其后的語句或程序做什么,
26.s[i]>='0'&&s[i]<='9'或isdigit(s[i])s[i]>='0'&&s[i]<='9'或isdigit(s[i])解析:“chars[80],d[80];”定義了兩個字符型數(shù)組,可以放入80個字符。gets函數(shù)是C語言提供的一個專門用于讀字符串的函數(shù),它讀入全部字符(包括空格),直到遇到回車為止。本題中,讀入字符串s后,開始比較s中的每個字符是否為數(shù)字字符,因為字符數(shù)據(jù)在內(nèi)存中以相應的ASCII碼存放,所以只需比較相應的字符是否在'0'到'9'之間,或使用庫函數(shù)isdigit(),來判斷是否為數(shù)字字符。如果是數(shù)字字符則將此字符存入d數(shù)組中,不是則繼續(xù)進行下一字符的比較,直至s結(jié)束(即'0'的出現(xiàn))。將'\\0'字符作為字符串d結(jié)束標志,最后調(diào)用puts函數(shù)輸出d。所以空白處應填入比較語句s[i]>>='0'&&s[i]<='9'或isdigit(s[i])以及其他任何等價表達式。
27.輸出輸出解析:測試用例曲測試輸入數(shù)據(jù)(輸入值集)和與之對應的預期輸出結(jié)果(輸出值集)兩部分組成。
28.11371,13,7解析:本題考查3個知識點:①余數(shù)的計算,題中的a=10,b=3,a%b=1;②(表達式1,表達式2)形式的結(jié)果為最后—個表達式的值,題中的a=10,b=3,(a-b,a+b)=a+b=13:③條件運算符的使用,題中的a-b?a-b:a+b,判斷語句a-b=7不為0,所以執(zhí)行a-b,結(jié)果為7。
29.1a61a6解析:對于指針變量的運算,就是對地址的運算。本題中由于指針指向的是整型變量,所以,使指針變量移動9個位置也就是移動18個字節(jié)。注意,本題是以十六進制輸出的。
30.用x+8代替函數(shù)fun(doublex)中形式參數(shù)x。用sin(x)代替函數(shù)fun(doublex)中形式參數(shù)x。
31.++pw[i-1]
32.空間空間解析:算法的復雜度主要包括時間復雜度和空間復雜度。所謂算法的時間復雜度,是指執(zhí)行算法所需要的計算工作量。一個算法的空間復雜度,一般是指執(zhí)行這個算法所需要的內(nèi)存空間。
33.44解析:一維數(shù)組元素的定義形式為:數(shù)組名[N],則該數(shù)組中元素的下限是0,上限是N-1。
34.ChinaChinaisagreatcountry!525
35.顛倒一個字符串中的字符,就是首尾對應的元素兩兩交換。簡單地可用兩個游標變量i和j,i是前端元素的下標,j是后端元素的下標,交換以這兩個變量值為下標的元素str[i]和str[j]。開始時,i的值為0,j的值為字符串末元素的下標(字符串長度減1)。每次交換后,i增1,j減1。繼續(xù)交換的條件是str[i]位于str[j]的前面,即i<j字符串末元素的下標是它的長度減1,所以在第二個空框處應填入-1。程序為了交換str[i]和str[j],使用了變量k,該變量應在程序的變量定義部分中—起定義,所以在第—個空\r\n\r\n
36.22解析:計算機存儲一個字符用1個字節(jié),存儲字符串時,每個字符用占用1個字節(jié),另在字符串的有效字符之后存儲1個字符串的結(jié)束標記符。所以存儲字符串“X”要占用2個字節(jié),存儲字符'x'只要1個字節(jié)。注意:sizeof()函數(shù)和strlen()函數(shù)的作用。
37.3!feof(f1)3\r\n!feof(f1)解析:要實現(xiàn)文件復制,需要指定源文件及目的文件,因此在命令行下執(zhí)行程序時至少要指定兩個參數(shù),加上程序名本身,故argc的值至少為3,因此第一空應填3。while循環(huán)中語句fputc(fgetc(f1),f2);的目的是將f1中的字符依次讀出并寫入到f2對應的文件中去,直至文件f1結(jié)束為止,因此第二空為!feof(f1)。
38."bi.dat"fp'bi.dat'\r\nfp解析:打開文件函數(shù)fopen的參數(shù)是文件名,因此有fopen('bi.dat');而寫文件的參數(shù)是文件指針,因此有fwrite(&j,sizeof(int),1,fp);
39.結(jié)構(gòu)結(jié)構(gòu)解析:路徑測試是白盒測試方法中的—種,它要求對程序中的每條路徑最少檢查一次,目的是對軟件的結(jié)構(gòu)進行測試。
40.交換排序交換排序解析:所謂排序是指將一個無序序列整理成按值非遞減順序排列成的有序序列,常用的排序方法有:交換排序、插入排序和選擇排序。其中交換排序包括冒泡排序和快速排序,插入排序包括簡單插入排序和希爾排序,選擇排序包括直接選擇排序和堆排序。
41.B解析:本題考查的是共用體變量的引用。
42.A
43.A解析:這是使用遞歸算法求著名的菲波拉奇數(shù)列,并要熟悉函數(shù)的遞歸方法的調(diào)用。
44.B解析:二叉樹有一個性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個,由于本題中的二叉樹有70個葉子結(jié)點,因此有69個度為2的結(jié)點。
該二叉樹中總的結(jié)點數(shù)為
度為2的結(jié)點數(shù)+度為1的結(jié)點數(shù)+葉子結(jié)點數(shù)=69+80+70=219
45.D解析:本題考查給二維數(shù)組元素賦值。給二維數(shù)組元素賦值時應注意下列兩點:①在對二維數(shù)組元素賦初值時,可以只對部分元素賦初值,未賦初值的元素自動取0。②二維數(shù)組第一維的大小由下列規(guī)則確定;當初值的個數(shù)能被第二維的常量表達式的值除盡時,所得商數(shù)就是第一維的大小;當初值的個數(shù)不能被第二維的常量表達式的值除盡時,第一維的大小等于所得商數(shù)加1。
46.A
47.A解析:本題考查ifelse語句的使用。先判斷第1個if語句,因為c=1>0,所以x=x+y=0+2=2。第1個if語句,因為a=-5<0,所以進入下列的復合語句。經(jīng)判斷發(fā)現(xiàn),復合語句中第2個if語句的條件均不滿足,不執(zhí)行任何語句退出,在這個過程中y和z的值沒有發(fā)生變化。
48.A解析:本題考查默認函數(shù)的函數(shù)值的類型。在函數(shù)定義時,由于函數(shù)沒有說明其類型,系統(tǒng)默認一律自動按整型處理,因此,函數(shù)的類型為int類型。
49.D解析:本題考查二維數(shù)組的定義。不能對數(shù)組進行動態(tài)定義,選項A錯誤;選項C省略第二維的長度;選項B中初值的行數(shù)超過數(shù)組第一維的長度。
50.B解析:因為整個逗號表達式的值為逗號表達式最后一個子表達式的值,所以本題輸出的是a2的值'm'。故應該選擇B。
51.C解析:A、D選項是關(guān)系運算表達式,在C語言中,只要關(guān)系運算符兩邊是合法的表達式就可以了。C選項中,%只能對整型進行運算,其中對f進行了強制類型轉(zhuǎn)換,但是轉(zhuǎn)換的表達式錯了,應為:(int)(f)。
52.D解析:因為x的值為大于1的奇數(shù),所以x除以2的余數(shù)等于1,因此,選項A)、C)中表達式的結(jié)果為真,不為0;對于選項B)來說,x除以2的商不會等于0;選項D)中表達式的結(jié)果為假,即等于0。
53.B解析:本題中,a[1][2]是二維數(shù)組中的第6個元素,對應for循環(huán)中i的值為5,p[5]=5+1。
54.A解析:程序中的輸入函數(shù)scanf('m=%dn=%dP=%d',&m,&n,&p);要求在輸入數(shù)據(jù)時,要輸入'm='、'n='、'p='字符中,且中間不能含有空格,所以選項A)正確。
55.B解析:getchar函數(shù)的作用是從終端讀入一個字符。
56.D解析:換行符是一個轉(zhuǎn)義字符,應該是‘\\n’,而不是‘\\N’。選項B)中,因為關(guān)系運算符“==”的優(yōu)先級高于賦值運算符“=”,所以ch得到的值是關(guān)系運算getchar()=='\\n'的結(jié)果而不是從鍵盤輸入的字符,因而不正確,故正確答案為選項D)。
57.D解析:二叉樹的遍歷分為先序、中序、后序三種不同方式。本題要求后序遍歷,其遍歷順序應該為:后序遍歷左子樹->,后序遍歷右子樹->,訪問根結(jié)點。按照定義,后序遍歷序列是DEBFCA,故答案為D。
58.D解析:“||”為或運算符,當其左有表達式中只要一個為非零則整個表達式的值1。|是按位或,&是按位與,^是按位異或,這三位運算符是按值的二進制位來比較的。
59.B解析:本題考查的知識點是條件表達式.條件運算符?:是C語言中唯一的三目運算符,它的規(guī)則是先計算左邊運算分量,如果為“真”(非0),則返回中間運算分量的值,否則返回右邊運算分量的值。本題中因為a<b為“真”,所以第1個條件表達式的值為b的值2,所以k=2。然后又因為k>c為“假’,所以第2個表達式的值為k的值2。所以本題應該選擇B。
60.A解析:函數(shù)定義時如果數(shù)據(jù)類型默認,則默認為int。函數(shù)中如果有“retum(表達式):”語句,表達式的類型可能與函數(shù)的類型不一致,但它并不能改變函數(shù)的類型,實際情況是把表達式轉(zhuǎn)換為函數(shù)值的類型作為返回值,因此本題的函數(shù)值類型是int。
61.A棧支持子程序調(diào)用。棧是一種只能在一端進行插入或刪除的線性表,在主程序調(diào)用子程序時要首先保存主程序當前的狀態(tài),然后轉(zhuǎn)去執(zhí)行子程序,最終把子程序的執(zhí)行結(jié)果返回到主程序中詬用子程序的位置,然后繼續(xù)向下執(zhí)行,這種調(diào)用方式符合棧的特點,因此本題的答案為A)。
62.A需求分析階段的工作可以分為4個方面:需求獲取、需求分析、編寫需求規(guī)格說明書和需求評審。需求分析的任務是發(fā)現(xiàn)需求、求精、建模和定義需求的過程,是描述“做什么
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年區(qū)域醫(yī)療服務承包協(xié)議
- 2024醫(yī)藥產(chǎn)品研發(fā)與銷售代理合同
- 2024年企業(yè)知識產(chǎn)權(quán)管理與運用合同
- 2024員工福利外包服務合同
- 2024年度游戲委托開發(fā)與運營合同
- 2024年度新能源汽車電池制造與回收合同
- 2024城市配送車輛購置擔保合同
- 2024年產(chǎn)定做加工協(xié)議
- 2024年品牌授權(quán)使用合同(服裝業(yè))
- 2019年西藏開發(fā)投資集團有限公司招聘試題及答案解析
- HAY崗位管理體系構(gòu)建
- 2023年中級經(jīng)濟師考試真題及答案
- SB/T 10895-2012鮮蛋包裝與標識
- GB/T 9115-2010對焊鋼制管法蘭
- GB/T 2423.3-2006電工電子產(chǎn)品環(huán)境試驗第2部分:試驗方法試驗Cab:恒定濕熱試驗
- GB/T 23221-2008烤煙栽培技術(shù)規(guī)程
- GB/T 16900-2008圖形符號表示規(guī)則總則
- 城市綠地系統(tǒng)規(guī)劃 第9章 工業(yè)綠地規(guī)劃
- 遼寧省遼南協(xié)作校2022-2023學年高二上學期期末考試語文答案 Word版含解析
- 中職英語統(tǒng)考復習講課教案
評論
0/150
提交評論