版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021-2022年山東省臨沂市全國計算機(jī)等級考試C語言程序設(shè)計測試卷一(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.允許對隊列進(jìn)行的操作有()。
A.對隊列中的元素排序B.取出最近進(jìn)隊的元素C.在隊頭元素之前插入元素D.刪除隊頭元素
2.數(shù)據(jù)庫管理系統(tǒng)DBMS中用來定義模式、內(nèi)模式和外模式的語言為()。
A.CB.BasicC.DDLD.DML
3.存儲以下數(shù)據(jù),占用存儲字節(jié)最多的是()。
A.0B.‘0’C.“0”D.0.0
4.
5.有以下程序:#include<stdio.h>intf(intx);main(){intn=1,m;m=f(f(f(n)));printf(“%d\n”,m);}intf(intx){returnx*2;}程序的運行結(jié)果是()。
A.8B.2C.4D.1
6.有以下程序
include<stdio.h>
main()
{chara[30],b[30];
scanf(“%s”,a);
gets(b);
printf(“%s\n%s\n”,a,b);
}
程序運行時若輸入:
howareyou?Iamfine<回車>
則輸出結(jié)果是A.howareyou?Iamfine
B.howareyou?1amfine
C.howareyou?Iamfine
D.howareyou?
7.軟件設(shè)計中劃分模塊的一個準(zhǔn)則是()。A.低內(nèi)聚低耦合B.高內(nèi)聚低耦合C.低內(nèi)聚高耦合D.高內(nèi)聚高耦合
8.有以下程序:#include<stdio.h>main(){inti,t[][3]={9,8,7,6,5,4,3,2,1};for(i=0;i<3;i++)printf(“%d”,t[2-i][i]);}程序的運行結(jié)果是()。
A.357B.753C.369D.751
9.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是()。
A.DB包括DBS和DBMSB.DBMS包括DB和DBSC.DBS包括DB和DBMSD.沒有任何關(guān)系
10.
11.有以下程序:voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i+=2)for(j=i+2;j<n;j+=2)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(aa,10);for(i=0;i<10;i++)printf("%d",aa[i]);printf("\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.9,2,7,4,5,6,3,8,1,10,
D.1,10,3,8,5,6,7,4,9,2,
12.設(shè)在C語言中,float類型數(shù)據(jù)占4個字節(jié),則double類型數(shù)據(jù)占()個字節(jié)。
A.1B.2C.8D.4
13.對n個元素的有序表A[1..n]進(jìn)行順序查找,其成功查找的平均查找長度(即在查找表中找到指定關(guān)鍵碼的元素時,所進(jìn)行比較的表中元素個數(shù)的期望值)為()
A.nB.(n+1)/2C.log2nD.n^2
14.有以下程序:#include<stdio.h>main(){charc;for(;(c=getchar())!=‘#’;){if(c>=‘a(chǎn)’&&c<=‘z’)c=c-‘a(chǎn)’+‘A’;putchar(++c);}}執(zhí)行時輸入aBcDefG##并按<Enter>鍵,則輸出結(jié)果是()。
A.AbCdEFgB.ABCDEFGC.BCDEFGHD.bcdefgh
15.若變量已經(jīng)定義且正確賦值,則針對程序段“temp=a;a=b;b=temp;”,以下敘述中正確的是()。
A.C語言的順序結(jié)構(gòu)不允許將多條語句寫在一行里
B.程序順序結(jié)構(gòu)對于此段程序是從左至右依次執(zhí)行的
C.此程序段的執(zhí)行順序是,先執(zhí)行“b=temp;”,再執(zhí)行“a=b;”,最后執(zhí)行“temp=a;”
D.將此段程序的前兩個分號改成逗號,后面一個不變,則不能實現(xiàn)a和b值的交換
16.有下列程序:main(){char*P[]={"3697","2584");inti,j;longnum=0;for(i=0;i<2;i++){j=0;while(p[i][j]!=\0){if((p[i][j]-t\0)%2)num=10*num+p[j][j]-0;j+=2;}}printf("%d\n",num);}程序執(zhí)行后的輸出結(jié)果是()。A.35B.37C.39D.3975
17.以下敘述中正確的是()。
A.算法的時間復(fù)雜度是指算法在執(zhí)行過程中基本運算的次數(shù)
B.算法的時間復(fù)雜度是指算法執(zhí)行所需要的時間
C.算法的時間復(fù)雜度是指算法執(zhí)行的速度
D.算法的復(fù)雜度是指算法控制結(jié)構(gòu)的復(fù)雜程度
18.下列敘述中錯誤的是()。A.程序可以由多個程序文件組成
B.一個C語言程序只能實現(xiàn)一種算法
C.程序可以由一個或多個函數(shù)組成
D.一個C函數(shù)可以單獨作為一一個c程序文件存在
19.現(xiàn)有如下定義語句int*p,s[20],i;p=s;表示數(shù)組元素s[i]的表達(dá)式不正確的是
A.*(s+i)B.*(p+i)C.*(s=s+i)D.*(p=p+i)
20.軟件詳細(xì)設(shè)計的主要任務(wù)是確定每個模塊的()。
A.算法和使用的數(shù)據(jù)結(jié)構(gòu)B.外部接口C.功能D.編程
二、2.填空題(20題)21.請讀程序片段:
inta=17;
printf("%d,%o\n",a,a);
以上程序片段的輸出結(jié)果是【】。
22.下述程序的輸出結(jié)果是【】。
#include<stdio.h>
intfun(intx)
{intp;
if(x==0||x==1)
return3;
else
p=x-fun(x-2);
returnp;}
voidmain()
{printf("\n%d",fun(9));}
23.以下程序運行后的輸出結(jié)果是______。
main()
{
chara[]="123456789",*p;
inti=0;
p=a;
while(*p)
{
if(i%2==0)
*p='*';
p++;i++;
}
puts(a);
}
24.設(shè)變量已正確定義為整型,則表達(dá)式n=i=2,++i,i++的值為【】。
25.以下程序的功能是輸出字符串。請?zhí)羁铡?/p>
main()
{char*a[]={"Pascal","Clanguage","dbase","Cobol"};
char【】;
intj=0;
p=a;
for(;j<4;j++)
print{("%s\n",*【】);
}
26.關(guān)系模型的完整性規(guī)則是對關(guān)系的某種約束條件,包括實體完整性、______和自定義完整性。
27.存儲結(jié)構(gòu)的4種基本類型分別是順序、鏈?zhǔn)?、索引和【】?/p>
28.若a是int型變量,則表達(dá)式(a=2*3,a*2),a+6的值為______。
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("%x\n,p+9);
}
30.下面程序的運行結(jié)果是______。
#defineDOUBLE(x,y)x/y
main()
{intx=4,y=2,t;
t=DOUBLE(x+y,x-y);
printf("%d",t);
}
31.以下程序運行時若從鍵盤輸入:102030<回車>。輸出結(jié)果是【】。
#include<stdio.h>
main()
{
inti=0,j=0,k=0;
scanf("%d%*d%d",&i,&j,&k);
printf("%d%d%d\n",i,j,k);
}
32.下列程序輸出的結(jié)果是【】。
fun(intx)
{staticinta=3;
a+=x;
return(a);
}
main()
{intk=2,m=1,n;
n=fun(k);
n=fun(m);
printf("%d\n",n);
}
33.一棵二叉樹第六層(根結(jié)點為第一層)的結(jié)點數(shù)最多為______個。
34.閱讀下面程序,則執(zhí)行后的輸出結(jié)果是【】。
#include"stdio.h"
main()
{intx,y,z;
x=1;y=2;z=3;
if(x>y)if(x>z)printf("%d",x);
elseprintf("%d",y);
printf("%d\n",z);}
35.設(shè)有下列宏定義:#defineA2
#defineBA+3
則執(zhí)行賦值語句:t=b*2;t為血型變量后的值是______。
36.下面程序的輸出結(jié)果是【】。
charb[]="ABCD";
main()
{
charb[30];
strcpy(&b[0],"GH");
strcpy(&b[1],"GH");
strcpy(&b[2],"GH");
printf("%s\n",b);
}
37.請在以下程序第一行的下劃線處填寫適當(dāng)內(nèi)容,使程序能正常運行。
#include<stdio.h>
【】(double,double);
main()
{doublex,y;
scanf("%If%If",&x,&y);
printf("%If\n",max(x,y));
}
doublemax(doublea,doubleb)
{return(a>b?a:b);}
38.若fp已下確定義為一個文件指針,d1.dat為二進(jìn)制文件,請?zhí)羁?,以便為“讀”而打開此文件:fp=fopen(【】);。
39.數(shù)據(jù)模型按不同的應(yīng)用層次分為三種類型,它們是______數(shù)據(jù)模型、邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型。
40.下列程序的輸出結(jié)果是______。
main()
{inti,sum;
for(i=1;i<7;i++)
sum+=i;
printf("%d",sum);
}
三、1.選擇題(20題)41.設(shè)有如下定義:char*aa[2]={"abcd","ABCD"},則以下說法中正確的是()。
A.aa數(shù)組中元素的值分別是{"abcd","ABCD"};
B.aa是指針變量,它指向含有兩個數(shù)組元素的字符型一維數(shù)組
C.aa數(shù)組的兩個元素分別存放的是含有4個字符的一維字符數(shù)組的首地址
D.aa數(shù)組的兩個元素中各自存放了字符‘a(chǎn)’和‘A’的地址
42.以下程序的輸出結(jié)果是______。main()inta=3;printf("%d\n",(a+=a=a=a*a);}
A.-6B.1C.2D.-12
43.下面關(guān)于完全二叉樹的敘述中,錯誤的是______。
A.除了最后—層外,每—層上的結(jié)點數(shù)均達(dá)到最大值
B.可能缺少若干個左右葉子結(jié)點
C.完全二叉樹—般不是滿二叉樹
D.具有結(jié)點的完全二叉樹的深度為[log2n]+1
44.有以下程序段:intj;floaty;charname[50];scanf("%2d%f%s",&j,&y,name);當(dāng)執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為()。
A.55566B.566C.7777D.566777
45.以下選項中合法的C語言字符常量是
A.'\t'B.AC.67D.A
46.若有下列定義(設(shè)int類型變量占2個字節(jié)):inti=8,j=9;則下列語句:printf("i=%u,j=%x\n",i,j);輸出的結(jié)果是()。
A.i=8,j=9B.8.9C.89D.i=8,j=8
47.以下敘述中錯誤的是
A.gets函數(shù)用于從終端讀入字符串
B.getehar函數(shù)用于從磁盤文件讀入字符
C.fputs函數(shù)用于把字符串輸出到文件
D.fwrite函數(shù)用于以二進(jìn)制形式輸出數(shù)據(jù)到文件
48.結(jié)構(gòu)化程序設(shè)計主要強調(diào)的是()。
A.程序的規(guī)模B.程序的效率C.程序設(shè)計語言的先進(jìn)性D.程序的易讀性
49.若指針p已正確定義,要使p指向兩個連續(xù)的整型動態(tài)存儲單元,則正確的語句是()。
A.p=2*(int*)malloc(sixeof(int))
B.p=(int*)calloc(2*sixeof(int))
C.p=(int*)malloc(2*sizeof(int))
D.p=2*(int*)calloc(sizeof(int))
50.若有說明inti,j=2,*p&i;,則能完成i=j賦值功能的語句是______。
A.i=*p;B.*p=*&j;C.i=&j;D.i=**p;
51.以下程序的輸出結(jié)果是______。intf(){staticinti=0;ints=1;s+=i;i++;returns;}main(){inti,a=0;for(i=0;i<5;i++)a+=f():printf("%d\n",a);}
A.20B.24C.25D.15
52.若有下列定義(設(shè)int類型變量占2個字節(jié)):inti=8;則下列語句:printf("i=%08d",i);輸出的結(jié)果是()。
A.i=8,B.i=00000008,C.i=08,D.8
53.在C程序中,可把整型數(shù)以二進(jìn)制形式存放到文件中的函數(shù)是()。
A.fprintf函數(shù)B.fread函數(shù)C.fwrite函數(shù)D.fputc函數(shù)
54.下列程序的輸出結(jié)果為main(){unionu{char*name;intage;intincome;}="WANGLIONG";s.age=28;s.income=1000;printf("%d\n",s.age);}
A.28B.1000C.0D.不確定
55.設(shè)有定義:inta,*pa=&a;以下scanf語句中能正確為變量a讀入數(shù)據(jù)的是()。
A.scanf("%d",pA);
B.scanf("%d",A);
C.scanf("%d",&pA);
D.seanf("%d",*pA);
56.有以下程序
#include<stdio.h>
#include<string.h>
typedefstruct{charname[9];charsex;floatscore[2];}STU;
voidf(STUa)
{STUb={"Zhao",′m′,850,900};inti;
strcpy(,);
a.sex=b.sex;
for(i=0;i<2;i++)a.score[i]=b.score[i];
}
main()
{STUc={"Qian",′f′,95.0,92.0};
f(c);
printf("%s,%c,%2.0f,%2.0f\n",,c.sex,c.score[0],c.score[1]);
}
程序的運行結(jié)果是
A.Qian,f,95,92B.Qian,m,85,90C.Zhao,f,95,92D.Zhao,m,85,90
57.現(xiàn)有如下定義:inta,b,*p,*q;,則下列賦值語句錯誤的是
A.p=&a;B.q=&b;C.p=q;D.p=a;
58.關(guān)系表中的每一行稱為一個()。
A.元組B.字段C.屬性D.碼
59.有以下程序段:main(){inta=5,*b,**c;c=&b;b=&a;┆}程序在執(zhí)行了c=&b;b=&a;語句后,表達(dá)式**c的值是()。
A.變量a的地址B.變量b中的值C.變量a中的值D.變量b的地址
60.下面敘述正確的是()
A.define和auto都不能定義為用戶標(biāo)識符
B.可以把define和auto定義為用戶標(biāo)識符
C.可以把define定義為用戶標(biāo)識符,但auto是C語言的關(guān)鍵字
D.可以把auto定義為用戶標(biāo)識符,但define是C語言的關(guān)鍵字
四、選擇題(20題)61.若有定義:doublea=22;inti=0,k=18;,則不符合c語言規(guī)定的賦值語句是()。A.i=a%ll;B.i=(a+k)《=(i+k);C.a=a++,i++;D.i=!a;
62.
63.
64.
65.
66.有以下程序:
程序運行后的輸出結(jié)果是()。
A.3B.2C.1D.0
67.以下正確的字符串常量是()。A.A."\\\"
B.'abc'
C.OlympicGames
D.""
68.有三個關(guān)系R、S和T如下:
則由關(guān)系R和s得到關(guān)系T的操作是()。
A.自然連接B.差C.交D.并
69.有兩個關(guān)系R和S如下:
則由關(guān)系R得到S的操作是()。
A.投影B.交C.選擇D.并
70.有以下程序
#include<stdio.h>
#defineN4
voidfun(inta[][N],intb[])
{inti;
for(i=0;i<N;i++)
b[i]=a[i][i];
}
main()
{intx[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N],i;
fun(x,y);
for(i=0;i<N;i++)printf("%d,",y[i]);
printf("\n");
}
程序的運行結(jié)果是
A.l,2,3,4,
B.1,0,7,0,
C.1,4,5,9,
D.3,4,8,10,
71.有以下程序
72.
73.若intk=8;,則執(zhí)行下列程序后,變量k的正確結(jié)果是
main()
{intk=8;
switch(k)
{case8:k+=1;
case10:k+=1;
case11:k+=1;break;
default:k+=1;
}
printf("%d\n",k);
}
A.12B.11
C.10D.9
74.下列敘述中正確的是()。A.算法的效率只與問題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)
B.算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量
C.數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)是一一對應(yīng)的
D.算法的時間復(fù)雜度與空間復(fù)雜度一定相關(guān)
75.有以下程序:
若運行時輸入:123<回車>,則輸出結(jié)果是()。
A.編譯錯誤2000B.102000C.122030D.10
76.已知i、j、k為int型變量,若要從鍵盤輸入2、3、4<CR>,使i、j、k的值分別為2、3、4,下列正確的輸入語句是()。A.A.scanf("%3d,‰3d,%3d",&i,&j,%k);
B.scanf("%d,%d,%d",&i,8Lj,&k);
C.scanf("%d%d%d",&i,&j,&k);
D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);
77.以下程序的輸出結(jié)果是()。
main
{intx=0.5;charz='a';
printf("%d\n",(x&1)&&(z<'2'));}A.A.0B.1C.2D.3
78.
79.在以下選項中,能正確調(diào)用對象屬性的語句是()。
A.對象名(屬性名)B.對象名一>屬性名C.對象名屬性名D.對象名.屬性名
80.若變量已正確說明為int類型,要通過語句scanf("%d%d%d",&a,&b,&c);給a賦值3,b賦值5,c賦值8,不正確的輸入形式是
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:用冒泡法對6個字符串按由小到大的順序進(jìn)行排序。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),該函數(shù)的功能是統(tǒng)計各年齡段的人數(shù)。N個年齡通過調(diào)用隨機(jī)函數(shù)獲得,并放入主函數(shù)的age數(shù)組中。要求函數(shù)把0~9歲的人數(shù)存放在d[0]中,把10~19歲的人數(shù)存放在d[1]中,把20~29歲的人數(shù)存放在d[2]中,依此類推,把100歲(含100歲)以上年齡的人數(shù)都存放在d[10]中。結(jié)果在主函數(shù)中輸出。注意:部分源程序在文件prog1.c中。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:
參考答案
1.D
2.C解析:選項A)、選項B)顯然不合題意。數(shù)據(jù)定義語言(DataDefinitionLanguage,簡稱DDL)負(fù)責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建;數(shù)據(jù)操縱語言(DataManipulationLanguage,簡稱DML)負(fù)責(zé)數(shù)據(jù)的操縱,包括查詢及增、刪、改等操作。
3.D
4.C
5.A第1次調(diào)用為m=f(f(f(1))),第2次調(diào)用為m=f(f(2)),第3次調(diào)用為m=f(4),即返回值為8。故本題答案為A選項。
6.B
7.B一般較優(yōu)秀的軟件設(shè)計,應(yīng)盡量做到高內(nèi)聚、低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨立性。
8.A二維數(shù)組t[][3]即t[3][3]={{9,8,7},{6,5,4},{3,2,1}}。執(zhí)行循環(huán)for語句,當(dāng)i=0時,t[2][0]=3;當(dāng)i=1時,t[l][1]=5;當(dāng)i=2時,t[0][2]=7;當(dāng)i=3時,循環(huán)結(jié)束,即t[2][0]=3、t[1][1]=5、t[0][2]=7。故本題答案為A選項。
9.CC?!窘馕觥繑?shù)據(jù)庫系統(tǒng)(DBS)由數(shù)據(jù)庫(DBS)、數(shù)據(jù)庫管理系統(tǒng)(DBMS)、數(shù)據(jù)庫管理員、硬件平臺和軟件平臺五個部分組成,可見DB和DBMS都是DBS的組成部分。
10.A
11.C解析:本題考核的知識點是程序中算法的基本分析。sort()函數(shù)作用是將數(shù)組aa中的下標(biāo)為偶數(shù)的元素按大到小排序.主函數(shù)中首先定義了一個長度為10的數(shù)組并賦值,然后調(diào)用sort()函數(shù),將數(shù)組aa中奇數(shù)個元素的值按大到小排序,因此執(zhí)行完該函數(shù)后,數(shù)組中奇數(shù)個元素的值為9,7、5、3和1,故主函數(shù)中最后通過一個for循環(huán)輸出數(shù)組aa中各元素的值為9、2、7、4、5、6、3、8、1和10,所以,4個選項中選項C符合題意。
12.C
\n在C語言中各種數(shù)據(jù)類型在內(nèi)存中所占的字節(jié)數(shù)與機(jī)器的位數(shù)有關(guān),16位機(jī)中(也就是在標(biāo)準(zhǔn)c中),若int類型數(shù)據(jù)占2個字節(jié),則float類型數(shù)據(jù)占4個字節(jié),double類型數(shù)據(jù)占8個字節(jié)。
\n
13.B
14.C題干中,循環(huán)的作用是將輸入的字符串轉(zhuǎn)化為大寫,getchar函數(shù)讀入一個字符,putchar函數(shù)輸出一個字符,當(dāng)遇到‘#’字符結(jié)束?!皃utcha(++C);”,表示將字符變量c加1后輸出。當(dāng)輸入“aBcDefG##”時,得到的結(jié)果是BCDEFGH。故本題答案為C選項。
15.BC語言允許將多條語句寫在一行,選項A錯誤;題干中的語句是從左至右依次執(zhí)行的,選項B正確,選項C錯誤。題干中的程序前兩個分號改成逗號,就構(gòu)成了逗號表達(dá)式。逗號表達(dá)式會依次從左到右計算各個表達(dá)式,整個表達(dá)式的值是最后一個表達(dá)式的值,所以此例也可以實現(xiàn)a和b值的交換,選項D錯誤。故本題答案為B選項。
16.D執(zhí)行第一次for循環(huán)時,用表達(dá)式p[i][J]!=\o來判斷字符串?dāng)?shù)組指針P是否到達(dá)字符串的結(jié)尾,如果沒有到達(dá),繼續(xù)執(zhí)行while中的語句。if語句表示(p[i][j]-\o)除2的余數(shù)不為0時,即字符串所有奇數(shù),執(zhí)行后面的語句。所以退出第1次for的循環(huán)體時,輸出為397,執(zhí)行第2次循環(huán)體。對字符串“2584”進(jìn)行處理,輸出結(jié)果為5,因而最后輸出結(jié)果為3975。
17.A算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量,其計算工作量是用算法所執(zhí)行的基本運算次數(shù)來度量的。本題答案為A選項。
18.B[解析]在一個C語言程序中可以進(jìn)行多種算法的實現(xiàn),對算法的個數(shù)沒有規(guī)定,所以B)錯誤。
19.C解析:當(dāng)p指向s數(shù)組的首地址時,表示數(shù)組元素s[i]的表達(dá)式應(yīng)當(dāng)有:①s[i],②,(s+i),③*(p+i),④p[i]四種形式。選項C)錯誤的原因是,數(shù)組的地址是不可變的,指針的地址是可以變的。
20.A解析:從軟件開發(fā)的工程化觀點來看,在使用程序設(shè)計語言編制程序以前,需要對所采用算法的邏輯關(guān)系進(jìn)行分析,設(shè)計出全部必要的過程細(xì)節(jié),并給予清晰的表達(dá)。詳細(xì)設(shè)計的任務(wù)就是要決定各個模塊的實現(xiàn)算法,并精確表達(dá)出這些算法。本題正確答案為選項A。
21.1721
22.77解析:本題考查的是函數(shù)的遞歸調(diào)用。x=0或x=1是遞歸的終止條件,然后用回代的方法從一個已知值推出下一個值,直到計算出最終結(jié)果。
23.*2*4*6*8**2*4*6*8*解析:程序中定義了一個字符數(shù)組a,并初始化為123456789,接著定義了一個指針p并讓它指向數(shù)組a,緊接著執(zhí)行了一個while循環(huán),此循環(huán)的作用是:當(dāng)i為偶數(shù)時,將“*”賦給a[i],p指向數(shù)組末尾,循環(huán)結(jié)束,此時數(shù)組中a[0]、a[2]、a[4]、a[6]和a[8]的值都為“*”,所以最后調(diào)用puts()函數(shù)輸出的a的值為*2*4*6*8*
24.33解析:本題考查的是C語言逗號表達(dá)式的相關(guān)知識。程序在計算逗號表達(dá)式時,從左到右計算由逗號分隔各表達(dá)式的值,整個逗號表達(dá)式的值等于其中最后一個表達(dá)式的值。本題中,首先i被賦值為2,再自加1,最后i++的值計算為3。
25.**p(p+i)
26.參照完整性參照完整性
27.散列散列
28.1212解析:本題考查逗號表達(dá)式的運算規(guī)則。逗號表達(dá)式的基本格式為:“表達(dá)式1,表達(dá)式2,…”,其整個表達(dá)式的結(jié)果取最后一個子表達(dá)式的值。本題中首先計算逗號表達(dá)式中的第1個表達(dá)式a=2*3=6,然后計算第2個表達(dá)式a*2,這時整個表達(dá)式的值為12,但要注意,因為第2個表達(dá)式并沒有給a賦值,因此a的值不變;接下來執(zhí)行最后一個表達(dá)式a+6=12,所以整個表達(dá)式最后的值為12。
29.1a61a6解析:對于指針變量的運算,就是對地址的運算。本題中由于指針指向的是整型變量,所以,使指針變量移動9個位置也就是移動18個字節(jié)。注意,本題是以十六進(jìn)制輸出的。
30.2
31.1030010300解析:本題的scanf()函數(shù)要求用戶輸入三個十進(jìn)制整數(shù),但只接受第一和第三個到函數(shù)的第二和第三個參數(shù)所指的內(nèi)存地址中。所以本題的輸出為:10300。
32.6
33.3232解析:二叉樹的一個性質(zhì)是,在二叉樹的第k層上,最多有2k-1(k≥1)個結(jié)點。由此,26-1=32.所以答案為32。
34.33解析:C語言的語法規(guī)定:else子句總是與前面最近的不帶else的if相結(jié)合。因為x不大于y,所以執(zhí)行printf('%d\\n',z);語句。
35.88解析:本題考查帶參數(shù)的宏定義及相關(guān)運算。運算過程為:t=-B*2=A+3*2=2+3*2=8。
36.GGGHGGGH解析:由于在函數(shù)main中定義了數(shù)組變量b,其將屏蔽全局變量b。對于一維數(shù)紐變量,其值為一常數(shù),等于數(shù)組首元素地址。strcpy(&b[0],'GH'),是將字符串'GH'復(fù)制到數(shù)組b中從首元數(shù)開始的空間中,此是b中的字符串為”叫”:strcpy(&b[1],'GH'),是將字符串'GH'復(fù)制到數(shù)組b中從第二個元素開始的空間中,此是b中的字符串為“GH”。執(zhí)行第三次strcpy函數(shù)后,b中的字符串為'GGGH'。
37.doublemax或externdoublemaxdoublemax或externdoublemax解析:main函數(shù)中調(diào)用了一個max函數(shù),而max函數(shù)是在調(diào)用之后定義的,所以要求填空的內(nèi)容應(yīng)該是對函數(shù)進(jìn)行聲明的語句。由max函數(shù)的定義可知此函數(shù)是double型的,因此空格處應(yīng)該填doublemax或externdoublemax。
38.“d1.dat”“rb”或“d1.dat”“r+b”或“d1.dat”“rb+”“d1.dat”,“rb”,或“d1.dat”,“r+b”,或“d1.dat”,“rb+”,解析:打開文件的函數(shù)為fopen(”文件名”,“mode”),其中“mode”表示文件的打開方式。如果打開的是二進(jìn)制文件,其mode字符串可以是:“rb”、“wb”、“ab”、“rb+”、“wb+”、“ab+”。“r”表示以只讀方式打開?!皐”表示以寫方式打開,如果已存在該文件名的文件,文件中的內(nèi)容將被清空。若文件名不存在,則將創(chuàng)建該文件?!癮”為追加方式打開。若文件存在時;將打開這個文件并且在文件的末尾進(jìn)行追加。當(dāng)文件不存在,將創(chuàng)建新文件?!皉+”打開一個已存在文件用于更新(可讀可寫)。“w+”創(chuàng)建個新文件用于更新,如果文件存在,文件被重寫(可讀可寫)。“a+”打開用于追加,當(dāng)文件不存在時,創(chuàng)建新文件,并在文件末尾進(jìn)行追加(可讀可寫)。根據(jù)題意,應(yīng)該填“d1.dst”,“rb”或其他等價的表達(dá)法。
39.概念概念
40.無定值無定值解析:for(i=1;i<7;i++)決定了循環(huán)次數(shù)為6次,每次執(zhí)行的操作是sum+=i,但由于sum沒有初始化,并不知道sum的初值是多少,所以結(jié)果無定值。
41.C解析:aa數(shù)組被定義為字符型指針數(shù)組,有兩個元素,分別存放字符串'abcd'和'ABCD'的首地址。
42.D解析:賦值運算符的結(jié)合方向是自右至左,所以表達(dá)式a+=a-=a*a先運算最右邊的a*a得9,再運算a=a-9,即a=3-9,所以此時a的值由3變成了-6,最后運算a=a+(-6),即a=(-6)+(-6)=-12。
43.B解析:滿二叉樹指除最后一層外每一層上所有結(jié)點都有兩個子結(jié)點的二叉樹。完全二叉樹指除最后一層外,每一層上的結(jié)點數(shù)均達(dá)到最大值,在最后—層上只缺少右邊的若干子結(jié)點(葉子結(jié)點)的二叉樹。
44.B解析:本題scanf()函數(shù)的格式化控制串中,'%2d'表示輸入一個2位的整數(shù):'%f'表示輸入一個浮點數(shù);'%s'表示輸入一個字符串。因此,從鍵盤上輸入'555667777abe'后,前兩位'55'被當(dāng)作2位整數(shù)輸入給j;'566'被當(dāng)作浮點數(shù)輸入給y;跳過空格后,剩下的字符串'7777abc'全部輸入給name。故本題應(yīng)該選擇B。
45.A解析:在C語言中,一個字符常量代表ASCII字符集中的一個小字符,在程序中用單引號把一個字符括起來作為字符常量,選項A)是一個轉(zhuǎn)義字符常量,表示橫向跳若干空格(代表“TAB”鍵);選項B)表示一個字符串;選項C)表示一個整型常量;選項D)表示一個標(biāo)識符(代表一個變量),故本題答案為A)。
46.A解析:本題考查函數(shù)printf()的格式?!?x”表示以十六進(jìn)制輸出整型數(shù)據(jù);“%u”表示以十進(jìn)制無符號型輸出整型數(shù)據(jù)。printf函數(shù)中格式說明符之前插入的任何字符都原樣輸出。
47.B
48.D解析:程序不僅是編寫完就結(jié)束了,為了測試和維護(hù)程序,往往還有其他人閱讀和跟蹤程序,因此程序設(shè)計的風(fēng)格應(yīng)該強調(diào)簡單和清晰,即程序的易讀性,“清晰第一,效率第二”。
49.C解析:malloc函數(shù)的調(diào)用形式:malloc(size)。malloc函數(shù)用來分配size個字節(jié)的存儲區(qū),返回一個指向存儲區(qū)首地址基類型為void的地址,可以利用強制類型轉(zhuǎn)換將其換成所需的類型,這里需轉(zhuǎn)換為整型(int*)。若不能確定數(shù)據(jù)類型所占的字節(jié)數(shù),可使用sizeof運算符來求得,這里要求兩個連續(xù)的整型動態(tài)存儲單元即2*sizeof(int)。4個選項中只有C符合題意。
50.B解析:指針是一種用來存放變量地址的特殊變量。本題中指針變量P用于存放整型變量i的地址,改變*P的值即為改變i的值。又因為“&”和“*”兩個運算符的優(yōu)先級別相同,按自右而左的方向結(jié)合,所以*&j先進(jìn)行&j運算,得j的地址,再進(jìn)行*運算,取所得地址里面的值,故*&j與j等價。
51.D解析:函數(shù)f中變量i為靜態(tài)變量,函數(shù)f調(diào)用結(jié)束后變量i所占據(jù)的存儲單元不會釋放,而在主函數(shù)中f被調(diào)用5次,具體過程如下。
第1次調(diào)用f:s=s+i=1+0=1,i=i+1=1,主函數(shù)中a=a+f()=O+1=1
第2次調(diào)用f:s=s+1=1+1=2,i=i+1=2,豐函數(shù)中a=a+f()=1+2=3
第3次調(diào)用f:s=s+1=1+2=3,i=i+1=3,主函數(shù)中a=a+f()=3+3=6
第4次調(diào)用f:s=s+i=1+3=4,i=i+1=4,主函數(shù)中a=a+r()=6+4=10
第5次調(diào)用f:s=s+i=1+4=5,i=i+4=5,主函數(shù)中a=a+f()=10+5=15
所以printf語句的輸出結(jié)果為15。
52.B解析:本題考查printf函數(shù)的格式?!?08”格式符中的“0”表示在指定數(shù)據(jù)輸出寬度的同時,在數(shù)據(jù)前面的多余空格處加“0”;“8”表示指定數(shù)據(jù)的輸出寬度為8位。
53.C解析:fprintf是格式文件格式化輸出函數(shù),fread是讀文件,fputc輸出單個字符到文件。只有fwrite可以通過參數(shù)來設(shè)置以二進(jìn)制形式寫文件。
54.B解析:本題對共用體的使用進(jìn)行了考查。由于共用體所有成員共同占據(jù)一段存儲空間,所以對成員變量的賦值,后面的賦值會覆蓋掉前面的賦值,因為s.income=1000;是最后一次成員變量賦值,變量age與變量income共同占據(jù)一段存儲空間,所以age的值也為1000。
55.A解析:本題中定義了整型變量a和一個指向整型數(shù)據(jù)的指針變量pa,并定義pa是一個存放a的地址的變量。選項B是應(yīng)該將a改為&a,故選項B不正確;選項c應(yīng)該將&pa改為pa,因為pa已經(jīng)表示存放:的地址,故選項C不正確:選項D中*pa表示的是指針p8所指向存儲空間的變量的值,而不是一個地址,故選項D不正確,所以,4個選項十選項A符合題意。
56.A解析:本題考查的是函數(shù)調(diào)用時的參數(shù)傳遞問題。程序在調(diào)用函數(shù)f時,傳給函數(shù)f的參數(shù)只是結(jié)構(gòu)變量c在棧中的一個拷貝,函數(shù)f的所有操作只是針對這個數(shù)據(jù)拷貝進(jìn)行的修改,這些都不會影響變量c的值。
57.D解析:給一個指針變量賦值可以通過以下方法:①通過求地址運算(&)獲得地址,②通過指針變量獲得地址,③通過標(biāo)準(zhǔn)函數(shù)獲得地址值。一個指針沒有指向一個空間的時候,不能賦予一個固定的值,而且不加星號的指針指的是地址。
58.A解析:關(guān)系表中,每一行稱為一個元組,對應(yīng)表中的一條記錄;每一列稱為表中的一個屬性,對應(yīng)表中的一個字段;在二維表中凡能唯一標(biāo)識元組的最小屬性集稱為該表的鍵或碼。
59.C解析:本題考查指向指針的指針。*c表示c間接指向的對象的地址,而**c是c間接指向的對象的值。在c*&b中,已經(jīng)把b的地址存放在c里了,*c就指向了b的地址,而b里存放的就是a的地址,那么**c應(yīng)該是變量a的值。也可以用排除法排除選項A),B)。由b=&a可知,這兩個選項是同一個意思,變量b中的值就是變量a的地址。所以可以排除。
60.C
61.A取模運算符“%”為二元運算符,具有左結(jié)合性,參與運算的量應(yīng)均為整型,選項A)中的變量a是double型,所以選項A)不符合規(guī)定。
62.A
63.B
64.C
65.D
66.D在ifelse語句中else總是與離它最近的f配對。本題目中x為l所以!X為0,所以執(zhí)行elseif語句中的內(nèi)容,判斷(x==O)是否成立,因為x為1所以條件不成立,聽以elseif內(nèi)部的if…else語句不再執(zhí)行,所以Y的值還是初蛤值0。
67.D選項A中“\\\”為轉(zhuǎn)義字符,故選項A錯誤,選項B和C顯然不是字符串常量。選項D是一個字符串常量,稱為空串。
68.B關(guān)系T中的元組是R關(guān)系中有而S關(guān)系中沒有的元組的集合,所以進(jìn)行的是差的運算。
69.C四個選項中選擇和投影都是對單個表進(jìn)行運算,其結(jié)果都是一個關(guān)系。但只有選擇運算是選取滿足條件的元組,由題圖可知,由關(guān)系R得到關(guān)系S的操作是選擇運算。
70.B本題考查二維數(shù)組的相關(guān)操作。程序主要包括兩個部分:主函數(shù)部分和fun函數(shù)。主函數(shù)初始給出了一個4×4的二維矩陣,并對每一行賦初值,可以看出每一行都要有4個元素,而對于給出的初值個數(shù)不滿足4個的,要先從第一列開始將各個值賦給各列,不足的部分用0補齊。函數(shù)fun的作用是將二維矩陣a中行號與列號相同的數(shù)據(jù)賦值給一維矩陣y,y的下標(biāo)與該數(shù)據(jù)在a中的行號相同。題目所要求解的即通過printf函數(shù)將矩陣y中的元素按照順序輸出。本題中二維矩陣a初始化后為{{1,2,3,0},{4,0,0,0},{5,6,7,8},{9,10,0,0}}。將行號與列號相同的元素賦給y,則y矩陣的數(shù)據(jù)為{1,0,7,0},輸出即可得到結(jié)果。
71.Amain函數(shù)輸出字符串第6個元素對應(yīng)的數(shù)據(jù),所以答案為A)。
72.C
73.B在本題中,程序的作用是通過switch語句改變已經(jīng)被賦初值的變量k的值。程序中首先將變
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 聊城職業(yè)技術(shù)學(xué)院《的分層開發(fā)技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 麗江師范高等專科學(xué)?!豆こ讨茍DⅡ》2023-2024學(xué)年第一學(xué)期期末試卷
- 江西司法警官職業(yè)學(xué)院《學(xué)術(shù)論文寫作(1)》2023-2024學(xué)年第一學(xué)期期末試卷
- 江漢藝術(shù)職業(yè)學(xué)院《健身俱樂部經(jīng)營與管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖北大學(xué)知行學(xué)院《山地戶外運動》2023-2024學(xué)年第一學(xué)期期末試卷
- 自貢職業(yè)技術(shù)學(xué)院《商業(yè)銀行與業(yè)務(wù)經(jīng)營》2023-2024學(xué)年第一學(xué)期期末試卷
- 周口師范學(xué)院《教育歷史與比較研究》2023-2024學(xué)年第一學(xué)期期末試卷
- 重慶科技學(xué)院《工程管理軟件與BM技術(shù)應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 浙江樹人學(xué)院《圖像處理軟件應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 長江大學(xué)文理學(xué)院《材料力學(xué)B(外)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024版塑料購銷合同范本買賣
- 【高一上】【期末話收獲 家校話未來】期末家長會
- GB/T 44890-2024行政許可工作規(guī)范
- 有毒有害氣體崗位操作規(guī)程(3篇)
- 兒童常見呼吸系統(tǒng)疾病免疫調(diào)節(jié)劑合理使用專家共識2024(全文)
- 《華潤集團(tuán)全面預(yù)算管理案例研究》
- 2024-2025高考英語全國卷分類匯編之完型填空(含答案及解析)
- 2024年露天煤礦地質(zhì)勘查服務(wù)協(xié)議版
- 兩人退股協(xié)議書范文合伙人簽字
- 2024年資格考試-WSET二級認(rèn)證考試近5年真題附答案
- 2024年重慶南開(融僑)中學(xué)中考三模英語試題含答案
評論
0/150
提交評論