版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2021年寧夏回族自治區(qū)固原市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.若進棧序列為1,2,3,4,進棧過程中可以出棧,則下列不可能的一個出棧序列是______。
A.1,4,3,2B.2,3,4,1C.3,1,4,2D.3,4,2,1
2.在存儲數(shù)據(jù)時,通常不僅要存儲各數(shù)據(jù)元素的值,而且還要存儲()。
A.數(shù)據(jù)的處理方法B.數(shù)據(jù)元素的類型C.數(shù)據(jù)元素之間的關(guān)系D.數(shù)據(jù)的存儲方法
3.下列關(guān)于棧敘述正確的是A.棧頂元素最先能被刪除B.棧頂元素最后才能被刪除C.棧底元素永遠不能被刪除D.以上三種說法都不對
4.一個棧的初始狀態(tài)為空?,F(xiàn)將元素1、2、3、4、5、A、B、C、D、E依次入棧,然后再依次出棧,則元素出棱的順序是()。A.A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.54321EDCBA
5.
6.假設(shè)某算法的計算時間可用遞推關(guān)系式T(n)=2T(n/2)+n,T(1)=1表示,則該算法的時間復(fù)雜度為()
A.O(logn)B.O(n*logn)C.O(n)D.O(n^2)
7.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結(jié)點訪問順序是()。
A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca
8.有以下程序:#include<stdio.h>#include<string.h>main(){charstr[][20][{"One*World","One*Dream!"},*p=str[1];prinft("%d,",strlen(p));printf("%s\n",p);}程序運行后的輸出結(jié)果是()。A.9,0ne*WorldB.9,0ne*Dream!C.10,One*Dream!D.10,Ome*World
9.向一個棧頂指針為h的帶頭結(jié)點的鏈棧中插入指針s所指的結(jié)點時,應(yīng)執(zhí)行()操作。
A.h->next=s;
B.s->next=h;
C.s->next=h;h->next=s;
D.s->next=h->next;h->next=s;
10.
11.一棵二叉樹共有25個結(jié)點,其中5個是葉子結(jié)點,則度為l的結(jié)點數(shù)為()。
A.16B.10C.6D.4
12.設(shè)有下列二叉樹:
對此二叉樹先序遍歷的結(jié)果為
A.ABCDEFB.DBEAFCC.ABDECPD.DEBFCA
13.有以下程序
#include<stdio.h>
main()
{charb,c;inti;
b=‘a(chǎn)’;c=‘A’;
for(i=0;i<6;i++)
{if(i%2)putchar(i+b);
elseputehar(i+c);
}printf(“\n”);
}
程序運行后的輸出結(jié)果是A.ABCDEFB.AbCdEfC.aBeDeFD.abcdef
14.若有定義“inta=1234,b=-5678;”,用語句“printf("%+-6d%+-6d",a,b);”輸出,以下正確的輸出結(jié)果是()。
A.+1234-5678(中間有一個空格,最后有一個空格)
B.+1234-5678(最前面有一個空格,中間有一個空格)
C.+-1234+-5678(最前面和最后均無空格)
D.1234-5678(中間有兩個空格,最后有一個空格)
15.
16.
17.同一個關(guān)系模型的任意兩個元組值()。
A.可以全相同B.不能全相同C.必須全相同D.以上都不對
18.下列關(guān)于棧的描述中錯誤的是()。
A.棧是先進先出的線性表B.棧只能順序存儲C.棧具有記憶作用D.對棧的插入刪除操作中,不需要改變棧底指針
19.設(shè)有二維數(shù)組A7×8,每個數(shù)據(jù)元素占8個字節(jié)存儲單元,順序存放,A第一個元素A0,0的存儲地址為1000,按行優(yōu)先存放時,元素A3,4的地址為()。
A.1224B.1208C.1200D.1216
20.
二、2.填空題(20題)21.在索引查找或分塊查找中,首先查找【】,然后再查找相應(yīng)的【】,整個索引查找的平均查找長度等于查找索引表的平均查找長度與查找相應(yīng)子表的平均查找長度之和。
22.設(shè)有定義“struct{inta;floatb;charc;}abc,*p_abc=&abc;”,則對結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc【】a。
23.若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達式pow(y,fabs(x))的值為【】。
24.以下程序的輸出結(jié)果是【】。
main()
{char*p[]={"BOOL","OPK","H","SP"};
inti;
for(i=3,i>=0;i--,i--)printf("%c",*p[i]);
printf("\n");
}
25.設(shè)x、y、z為整型變量,且x=2,y=3,z=4,當(dāng)執(zhí)行以下語句后,x的值是______。
x*=(y++)+(--z);
26.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),線性鏈表屬于【】。
27.已有定義:double*p;,請寫出完整的語句,利用malloc函數(shù)使p指向一個雙精度型的動態(tài)存儲單元______。
28.下列程序的循環(huán)次數(shù)是______。
x=2;
do
{x=x*x;}
while(!x);
29.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{inta[5]={2,4,6,8,10},*p;
p=a;p++;
printf("%d",*p);
}
30.下列程序的輸出結(jié)果是______。
#defineP(A)printf("%d,",(int)(A))
#definePRINT(A)P(A);printf("theend")
main()
{inti,a=0;
for(i=1;i<5.i++)
PRINT(a+i);
printf("\n");
}
31.函數(shù)fun的功能是計算xn
doublefun(doublex,intn)
{inti;doubley=1;
for(i=1;i<=n;i++)y=y*x;
returny;
}
主函數(shù)中已正確定義m、a、b變量并賦值,而且調(diào)用fun函數(shù)計算:m=a4+b4-(a+b)3。實現(xiàn)這一計算的函數(shù)調(diào)用語句為【】。
32.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{inta=1234;
floatb=123.456;
doublec=12345.54321;
printf("\n%2d,%2.1f,%2.11f",a,b,C);
}
33.在使用putchar和getchar函數(shù)處理字符時,必須在程序的開頭出現(xiàn)包含頭文件的命令行是【】。
34.若有下列定義和語句:
char*s1="12345",*s2="1234";
printf("%d\n",strlen(strcpy(s1,s2)));
則輸出結(jié)果為______。
35.用鏈表表示線性表的突出優(yōu)點是______。
36.數(shù)據(jù)庫系統(tǒng)中實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件是______。
37.以下程序給指針p分配三個double型動態(tài)內(nèi)存單元,請?zhí)羁铡?/p>
#include<stdio.h>
#include<stdlib.h>
main()
{double*p;
p=(double*)malloc(【】);
p[0]=1.5;p[1]=2.5;P[2]=3.5;
printf("%f%f%f\n",p[0],p[1],p[2]);
}
38.下列程序的運行結(jié)果是【】。
#include<stdio.h>
#defineM100
voidfun(intm,int*a,int*n)
{inti,j=0;
for(i=1;i<=m;i++)
if(i%7==0||i%11==0)a[j++]=i;
*n=j;
}
main()
{intaa[M],n,k;
fun(10,aa,&n);
for(k=0;k<n;k++)
if((k+1)%20==0)printf("\n");
elseprintf("%4d",aa[k]);
printf("\n");
}
39.某二叉樹中度為2的結(jié)點有18個,則該二叉樹中有【】個葉子結(jié)點。
40.在關(guān)系模型中,把數(shù)據(jù)看成一個二維表,每一個二維表稱為一個______。
三、1.選擇題(20題)41.已有定義:charc;,程序前面已在命令行中包含ctype.h文件。不能用于判斷c中的字符是否為大寫字母的表達式是()。
A.isupper(c)
B.'A'<=c<='Z'
C.'A'<=c&&c<='Z'
D.c<=('z'-32)&&('a'-32)<=c
42.a、b和c都是int型變量,且a=3,b=4,c=5,則下面的表達式中,值為0的表達式是()
A.'a'&&'b
B.a<=b
C.ab+c&&b-c
D.!((a<b)&&!c1)
43.信息隱蔽的概念與下述哪一種概念直接相關(guān)()。
A.軟件結(jié)構(gòu)定義B.模塊獨立性C.模塊類型劃分D.模塊耦合度
44.下列描述中正確的是()。
A.程序就是軟件
B.軟件開發(fā)不受計算機系統(tǒng)的限制
C.軟件既是邏輯實體,又是物理實體
D.軟件是程序、數(shù)據(jù)與相關(guān)文檔的集合
45.以下對C語言函數(shù)的有關(guān)描述中,正確的是
A.在C語言中調(diào)用函數(shù)時,只能把實參的值傳給形參,形參的值不能傳送給實參
B.C函數(shù)既可以嵌套定義又可以遞歸調(diào)用
C.函數(shù)必須有返回值,否則不能使用函數(shù)
D.函數(shù)必須有返回值,返回值類型不定
46.以下程序試圖把從終端輸入的字符輸出到名為abc.txt的文件中,直到從終端讀入字符#時結(jié)束輸入和輸出操作,但程序有錯。#include<stdio.h>main(){FILE*fout;charch;fout=fopen('abc.txt','W');ch=fgetc(stdin);while(ch!='#'){fputc(ch,fout);ch=fgetc(stdin);}fclose(fout);}出錯的原因是()。
A.函數(shù)fopen調(diào)用形式錯誤B.輸入文件沒有關(guān)閉C.函數(shù)fgetc調(diào)用形式錯誤D.文件指針stdin沒有定義
47.下列說法中,正確的是______。
A.指針是一個變量B.指針中存放的可以是任何類型的值C.指針變量是變量地址D.指針變量占用存儲空間
48.在下列給出的表達式中,與while(E)中的(E)不等價的表達式是()。
A.(!E==0)B.(E>0‖E<0)C.(E==0)D.(E!=0)
49.有定義語句:chars[10];,若要從終端給s輸入5個字符,錯誤的輸入語句是
A.sets(&s[0]);
B.scarf("%s",s+1);
C.gets(s);
D.scanf("%s",s[1]);
50.假定當(dāng)前盤符下有兩個如下文本文件:文件名a1.txta2.txt內(nèi)容123#321#則下面程序段執(zhí)行后的結(jié)果為#include"stdio.h"voidfc(FILE*p){charc;while((c=fgetc(p))!='#')putchar(c);}main(){FILE*fp;fp=fopen("a1.txt","r");fc(fp);fclose(fp);fp=fopen("a2.txt","r");fc(fp);fclose(fp);putchar('\n');}
A.123321B.123C.321D.以上答案都不正確
51.下面程序的運行結(jié)果是
#include<stdio.h>
voiddelch(char*s)
{inti,j;
char*a;
a=s;
for(i=0,j=0;a[i]!=′\n′;i++)
if(a[i]>=′0′&&a[i]<=′9′)
{s[j]=a[i];j++;}
s[j]=′\0′;}
main()
{char*item="a34bc";
delch(item);
printf("\n%s",item);}
A.abcB.34C.a34D.a34bc
52.設(shè)有以下定義:inta=0;doubleb=1.25;charc='A';#defined2則下面語句中錯誤的是()。
A.a++;B.b++;C.c++;D.d++;
53.下面()不是軟件調(diào)試的主要方法?
A.搜索法B.原因排除法C.回溯法D.強行排錯法
54.定義int*swap()指的是______。
A.一個返回整型值的函數(shù)swap()
B.一個返回指向整型值指針的函數(shù)swap()
C.一個指向函數(shù)swap()的指針,函數(shù)返回一個整型值
D.以上說法均錯
55.設(shè)有表示學(xué)生選課的三張表,學(xué)生s(學(xué)號,姓名,性別,年齡,身份證號),課程c(課號,課名),選課SC(學(xué)號,課號,成績),則表sc的關(guān)鍵字(鍵或碼)為()。
A.課號,成績B.學(xué)號,成績C.學(xué)號,課號D.學(xué)號,姓名,成績
56.在下列敘述中,錯誤的一條是()
A.scanf()函數(shù)可以用來輸入任何類型的多個數(shù)據(jù)
B.數(shù)組名作函數(shù)參數(shù)時,也采用“值傳送”方式
C.如果形參發(fā)生改變,不會改變主調(diào)函數(shù)的實參值
D.函數(shù)的實參與形參的類型應(yīng)一致
57.下列模式中,能夠給出數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法的是A.內(nèi)模式B.外模式C.概念模式D.邏輯模式
58.要求通過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);
59.在C語言中,合法的字符常量是()
A.'\084'B.'\x43'C.'ab'D.'\0'
60.以下程序中調(diào)用scanf函數(shù)給變量a輸入數(shù)值的方法是錯誤的,其錯誤原因是main(){int*p,*q,a,b;p=&a;printf("inputa:");scanf("%d",*p);}
A.*p表示的是指針變量p的地址
B.*p表示的是變量a的值,而不是變量a的地址
C.*p表示的是指針變量p的值
D.*p只能用來說明p是一個指針變量
四、選擇題(20題)61.下面程序的輸出結(jié)果是()。
main()
{inta,b;
scanf("%2d%3d",&a,&b);
printf("a=%db=%d\n",a,b);
}
A.a(chǎn)=12b=34
B.a(chǎn)=123b=45
C.a(chǎn)=12b=345
D.語句有錯誤
62.有以下程序:執(zhí)行時輸入:0<;回車>;后,則輸出結(jié)果是()。A.5,B.0,0,0,0,0,C.0,1,2,3,4,D.0,1.
63.有以下程序:
A.xyyxB.yyyyC.yyxxD.yxyx
64.有以下程序:main(){intm=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);}程序運行后的輸出結(jié)果是______。
A.12353514B.12353513C.12343514D.12343513
65.
66.有以下定義語句,編譯時會出現(xiàn)編譯錯誤的是()。
67.有以下程序:
程序運行時,輸入的值在哪個范圍才會有輸出結(jié)果()。
A.小于3的整數(shù)B.不等于10的整數(shù)C.大于3或等于10的整數(shù)D.大于3且不等10的整數(shù)
68.以下選項中不能用做C程序合法常量的是()。
A.1,234B.‘\123’C.123D.“\x7G”
69.下列敘述中正確的是()。
A.循環(huán)鏈表是非線性結(jié)構(gòu)
B.雙向鏈表是非線性結(jié)構(gòu)
C.只有一個根結(jié)點的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)
D.有一個以上根結(jié)點的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)
70.
71.
72.設(shè)有定義:
73.有以下程序:
程序運行后的輸出結(jié)果是()。
A.0B.10C.20D.出錯
74.
75.以下敘述中正確的是()。
A.c語言程序?qū)脑闯绦蛑械谝粋€函數(shù)開始執(zhí)行
B.可以在程序中由用戶指定任意一個函數(shù)作為主函數(shù),程序?qū)拇碎_始執(zhí)行
C.c語言規(guī)定必須用main作為主函數(shù)名,程序從此開始執(zhí)行,在此結(jié)束
D.main作為用戶標識符,用以命名任意一個函數(shù)作為主函數(shù)
76.有以下程序:
#include<stdio.h>
main()
{chara[20],b[20],c[20];
scanf("%s%s",a,b);
gets(c);
printf("%S%S%s\n",a,b,c);
}
程序運行時從第一列開始輸入:
Thisisacat!<回車>
則輸出結(jié)果是()。
A.Thisisacat!
B.Thisisa
C.Thisisacat!
D.Thisisacat!
77.一名工作人員可以使用多臺計算機,而一臺計算機可被多名工作人員使用,則實體工作人員與實體計算機之間的聯(lián)系是()。
A.—對一B.—對多C.多對多D.多對一
78.以下選項中,不能作為合法常量的是
A.1.24e03B.1.34e0.3C.1.24e+3D.1.34e0
79.
80.以下關(guān)于結(jié)構(gòu)化程序設(shè)計的敘述中正確的是()。
A.結(jié)構(gòu)化程序使用goto語句會很便捷
B.在c語言中,程序的模塊化是利用函數(shù)實現(xiàn)的
C.一個結(jié)構(gòu)化程序必須同時由順序、分支、循環(huán)三種結(jié)構(gòu)組成
D.由三種基本結(jié)構(gòu)構(gòu)成的程序只能解決小規(guī)模的問題
五、程序改錯題(1題)81.下列給定的程序中,函數(shù)proc()的功能是:用選擇法對數(shù)組中的n個元素按從大到小的順序進行排序。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.請編寫函數(shù)proc,該函數(shù)的功能是:將放在字符串?dāng)?shù)組中的M個字符串(每串的長度不超過N),按順序合并組成一個新的字符串。例如,若字符串?dāng)?shù)組中的M個字符串為:ABCDBCDEFGCDEFGHI則合并后的字符串內(nèi)容應(yīng)該是ABCDBCDEFGCDEFGHl。注意:部分源程序給出如下。請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。試題程序:#include<stdio.h>#include<conio.h>#defineM3#defineN20voidproc(chararr[M][N],char*b){}voidmain{charstr[M][N]={"ABCD","BCDEFG","CDEFGHl"),i;chararr[100]={"##################"};printf(”Thestrin9:kn”);for(i=0;i<M;i++)puts(str[i]);printf("\n");proc(str,arr);printf("TheAstring:\n");printf("%S",arr);printf("\n\n");}
參考答案
1.C解析:棧是一種后進先出表,選項C中,先出棧的是3,說明此時棧內(nèi)必然有1,2,由于1先于2進淺,所以1不可能在2之前出棧,故選項C這種出棧序列是不可能的。
2.C
3.A棧是限定只在一端進行插入與刪除的線性表,按照“先進后出”或“后進先出”的原則組織數(shù)據(jù)。棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。
4.B棧是先進后出的原則組織數(shù)據(jù),所以人棧最早的最后出棧,所以選擇B。
5.D
6.B
7.D解析:中序遍歷的遞歸算法定義:①遍歷左子樹;②訪問根結(jié)點;③遍歷右子樹。前序遍歷的遞歸算法定義:①訪問根結(jié)點;②遍歷左子樹;③遍歷右子樹。后序遍歷的遞歸算法定義:①遍歷左子樹;②遍歷右子樹;③訪問根結(jié)點。根據(jù)前序遍歷的結(jié)果可知,a是根結(jié)點。由中序遍歷的結(jié)果dgbaechf可知,d、g、b是左子樹的結(jié)點,e、c、h、f是右子樹的結(jié)點。再由前序遍歷的結(jié)果bdg可知,b是a左邊子樹的根,由cefh可知,c是a右邊子樹的根。再由中序遍歷的結(jié)果dgb可知,d、g是b左邊子樹的結(jié)點,b右邊子樹無結(jié)點。再由前序遍歷結(jié)果dg可知,d為b左子樹的根,g是以d為根的子樹的右結(jié)點。至此,a的左子樹已完全弄清楚了。同樣的道理,可以弄清楚以c為根的子樹的結(jié)點位置。所以可知后序遍歷的結(jié)果是D。
8.C本題輸出兩個結(jié)果,第一個是求字符串的長度。第二個是輸出的字符串,數(shù)組的下標是從0開始的,所以當(dāng)str取1的時候,應(yīng)為“One*Dream!”。
9.D
10.B
11.A根據(jù)二叉樹的性質(zhì),n=n0+n1+n2(n表示總結(jié)點數(shù),n0表示葉子結(jié)點數(shù),nl表示度數(shù)為1的結(jié)點數(shù),n2表示度數(shù)為2的結(jié)點數(shù)),而葉子結(jié)點數(shù)總是比度數(shù)為2的結(jié)點數(shù)多1,所以n2=n1-1=5-1=4,而n=25,所以nl=n-n0-n2=25-5-4=16。
12.C解析:二叉樹的遍歷分為先序,中序、后序三種不同方式.本題要求先序遍歷,其遍歷順序應(yīng)該為:訪問根結(jié)點->,先序遍歷左子樹->先序遍歷右子樹。按照定義,先序遍歷序列是ABDECF,故答案為C。
13.B解析:變量b和c中分別存放字符a和A的ASCII碼,當(dāng)i的值對2求余非零時輸出ASCII碼為i+b)的字符;當(dāng)i的值對2求余為零時輸出ASCII碼為i+c的字符。分析程序可知本題選B。
14.Aprintf函數(shù)參數(shù)包括格式控制字符串和輸出參數(shù),其中格式控制字符串中除了格式控制字符外,其他字符原樣輸出。本題中的printf(“%+-6d%+-6d”,a,b);”,在%和格式控制字符d之間,“+”號表示輸出的數(shù)字帶正負號號表示輸出數(shù)據(jù)向左對齊,“6”表示輸出寬度,如果輸出數(shù)據(jù)的寬度不夠6,那么左對齊,右邊補空格。所以本題輸出+1234-5678(中間有一個空格,最后有一個空格)。本題答案為A選項。
15.D
16.A
17.B關(guān)系具有以下7個性質(zhì)。①元組個數(shù)有限性:二維表中元組的個數(shù)是有限的。②元組的唯一性:二維表中任意兩個元組不能完全相同。③元組的次序無關(guān)性:二維表中元組的次序,即行的次序可以任意交換。④元組分量的原子性:二維表中元組的分量是不可分割的基本數(shù)據(jù)項。⑤屬性名唯一性:二維表中不同的屬性要有不同的屬性名。⑥屬性的次序無關(guān)性.二維表中屬性的次序可以任意交換。⑦分量值域的同一性:二維表屬性的分量具有與該屬性相同的值域,或者說列是同質(zhì)的。滿足以上7個性質(zhì)的二維表稱為關(guān)系,以二維表為基本結(jié)構(gòu)所建立的模型稱為關(guān)系模型。本題答案為B選項。
18.B
\n棧是線性表的一種,它的特點是先進后出,并且只能在表的一端進行插入和刪除操作的線性表,入棧和出棧都是在棧頂進行,因此具有記憶作用,棧可以采用順序存儲,也可以采用鏈式存儲。
\n
19.A
20.D
21.索引表塊索引表\r\n塊
22.->->解析:若結(jié)構(gòu)體變量abc有成員a,并有指針p_abc指向結(jié)構(gòu)變量abc,則引用變量abc成員a的標記形式有abc.a和p_abc->a。
23.88解析:fabs函數(shù)功能是求x的絕對值,計算結(jié)果為double型。pow功能是計算x的y次方的值,計算結(jié)果同樣為double型。所以本題表達式相當(dāng)于2.0的3.0次方,結(jié)果為8.000000。
24.SO
25.12。12。解析:表達式x*=(y++)+(--z)相當(dāng)于先進行z的自減運算,再執(zhí)行x=x*(y+z),最后y自加。因此,變量x的值為12,y和z的值分別是4和3。
26.存儲結(jié)構(gòu)
27.p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);解析:malloc()函數(shù)只有一個參數(shù),該參數(shù)指定了需要分配多少字節(jié)的內(nèi)存。然后將分配好的內(nèi)存塊的首地址作為void*(未知類型指針)返回.故標準的調(diào)用形式應(yīng)該寫成:
p(double*)malloc(sizeof(double));
28.11解析:do…while語句的功能是:首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達式的值,若為真,則重復(fù)執(zhí)行循環(huán)體語句,否則退出循環(huán);do…while語句的特點是先執(zhí)行后判斷,因此循環(huán)體至少執(zhí)行1次.本程序中x=2不符合循環(huán)條件,所以只循環(huán)1次。
29.44解析:在主函數(shù)中,語句p=a;p++使用指針p指向數(shù)組a[1],所以輸出結(jié)果為4。
30.1234theend1,2,3,4,theend解析:本題考查帶參數(shù)的宏的定義。第1次循環(huán),i=1時,調(diào)用PRINT(1),P(1)輸出1;第2次循環(huán),i=2時,調(diào)用PRINT(2),P(2)輸出2:第3次循環(huán),i=3時,調(diào)用PRINT(3),P(3)輸出3:第4次循環(huán),i=4時,調(diào)用PRINT(4),P(4)輸出4,theend。
31.m=fun(a4)+fun(b4)-fun(a+b3);m=fun(a,4)+fun(b,4)-fun(a+b,3);解析:函數(shù)fun(x,n)的作用是求x的n次方,因此a的4次方應(yīng)該調(diào)用函數(shù)fun(a,4),b的4次方應(yīng)該調(diào)用函數(shù)fun(b,4),a+b的3次方應(yīng)該調(diào)用函數(shù)fun(a+b,3),所以題目中的數(shù)學(xué)表達式,寫成C程序中的語句為m=fun(a,4)+fun(b,4)-fun(a+b,3)。
32.1234123.512345.51234,123.5,12345.5解析:在primf()函數(shù)的格式控制符中:'%2d'表示輸出一個有符號整數(shù),如果輸出長度小于2,則左端補以空格,否則按實際長度輸出。所以本題中的a按原樣輸出為1234:'%2.1尸表示輸出一個單精度實數(shù),只輸出小數(shù)點后1位,后面若有小數(shù)則四舍五入,如果輸出長度小于2,則左端補以空格,否則按實際長度輸出。所以本題中的b四舍五入到小數(shù)點后1位再輸出為123.5;'%2.11f'除了表示輸出一個雙精度實數(shù)外,其余參數(shù)和'%2.1f'一樣。所以本題中的c四舍五入到小數(shù)點后1位再輸出為12345.5。故輸出結(jié)果是:1234,123.5,12345.5。
33.#include"stdio.h"#include'stdio.h'解析:使用putchar和getchar函數(shù)時,必須在程序的開頭出現(xiàn)包含頭文件#include'stdio.h'的命令行。putchar的函數(shù)調(diào)用形式為:putchar(字符變量或字符常量);getchar函數(shù)的調(diào)用形式為:變量=getchar();getchar后的一對圓括號內(nèi)沒有參數(shù),但這一對圓括號不可少。
34.44解析:strcpy(s1,s2)函數(shù)的作用是將字符串s2中的內(nèi)容拷貝到字符串s1中的內(nèi)容覆蓋。strlen()函數(shù)是求字符串的長度。本題實際上是要求s2字符串的長度,即是4。
35.便于插入和刪除操作。便于插入和刪除操作。解析:為了克服順序表中插入和刪除時需要移動大量數(shù)據(jù)元素的缺點,引入了鏈式存儲結(jié)構(gòu)。鏈表表示線性表的突出優(yōu)點是插入和刪除操作方便,不必移動數(shù)據(jù)元素,執(zhí)行效率高。
36.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的管理機構(gòu),它是一種系統(tǒng)軟件,負責(zé)數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護、控制及保護和數(shù)據(jù)服務(wù)等。
37.3*sizeof(double)或243*sizeof(double)或24解析:觀察程序可知,本題要求用malloc函數(shù)分配三個double型的動態(tài)內(nèi)存單元。
38.77解析:程序中的if(i%7==0||i%11==0)是找出能被7或11整除的所有整數(shù),a[j++]=i是將滿足條件的數(shù)放到a數(shù)組中,變量j記錄了滿足條件的數(shù)據(jù)個數(shù),main函數(shù)通過變量n得到此數(shù)據(jù)個數(shù)。如果m的值為50,即表達式fun(10,aa,&n)為fun(50,aa,&n)時,輸出結(jié)果為:711142122283335424449
39.1919解析:根據(jù)二叉樹的性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個。本題中度為2的結(jié)點數(shù)為18,故葉子結(jié)點數(shù)為18+1=19個。
40.關(guān)系關(guān)系解析:關(guān)系模型用;維表表示,則每個;維表代表一種關(guān)系。
41.B解析:大寫字母從'A'~'Z'的ASCII碼是連續(xù)的,所以如果當(dāng)—個字符大于等于'A'且小于等于'z'時,那這個字符就一定是一個大寫字母,故選項C正確。C語言中的庫函數(shù)isupper()的作用也正是判斷一個字符是否為大寫字母的,故選項A正確。在ASCII碼中,小寫字母的編碼也是連續(xù)的,對應(yīng)的小寫字符比大寫字符的ASCII碼值大32,所以選項D經(jīng)過小寫字符-32后,換算成了對應(yīng)的大寫字母'Z'和'A',所得到結(jié)果和選項C是一致的,故也是正確的。選項B中,C語言的邏輯表達式不能直接連寫,而應(yīng)該寫成選項C那樣,故是錯誤的,應(yīng)該選擇B。
42.D
43.B解析:信息隱蔽是指在一個模塊內(nèi)包含的信息(過程或數(shù)據(jù)),對于不需要這些信息的其他模塊來說是不能訪問的。模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。衡量軟件的模塊獨立性的度量標準是耦合性和內(nèi)聚性。一個模塊的耦合性越強,則該模塊的模塊獨立性越強。
44.D\r\n軟件是與計算機操作相關(guān)的計算機程序、規(guī)程、規(guī)則,以及可能有的文件、文檔及數(shù)據(jù);軟件開發(fā)要受到計算機系統(tǒng)的限制;軟件是一個邏輯實體,不是物理實體,軟件具有抽象性。因此選項D正確。
45.A解析:C語言中的函數(shù)可以進行遞歸調(diào)用,但不能在函數(shù)中定義函數(shù),即函數(shù)不能嵌套定義。函數(shù)可以沒有返回值,若有返回值,則返回值類型必須確定。
46.A解析:stdin是標準輸入設(shè)備的文件指針,不須定義直接可以使用,它隨系統(tǒng)的啟動而打開,隨系統(tǒng)的關(guān)閉而關(guān)閉,fgetc()函數(shù)的作用是從某個文件中讀取一個數(shù)據(jù),其參數(shù)為要讀取文件的文件指針,所以本題中的調(diào)用形式是正確的。fopen()函數(shù)有兩個參數(shù),第一個參數(shù)是打開的文件名,第二個參數(shù)是文件打開模式,兩個參數(shù)都是字符串,本例中“fout=fopen(\'abc.txt\',\'w\');”語句的fopen()函數(shù)參數(shù)是錯誤的,應(yīng)該用雙引號'',正確的應(yīng)改為“fout=fopen('abc.txt','w');”。所以,A選項為所選。
47.D解析:指針是地址,存放指針的變量是指針變量,不同類型的指針變量存放不同類型數(shù)據(jù)的地址,指針變量作為可存儲指針的變量,也要占用一定的存儲空間。
48.B解析:在while(E)中,表達式E可以是C語言中任意合法的條件表達式,但不能為空,由它來控制循環(huán)體是否執(zhí)行。在選項B)中表達式E>0‖E<0是一個邏輯表達式。
49.D解析:在格式輸入中,要求給出的是變量的地址,而D)答案中給出的s[1]是一個值的表達式。
50.A解析:本題的功能是順序的讀兩個文本文件;依次輸出。當(dāng)打開文件時出現(xiàn)錯誤,fopen函數(shù)將返回NULL。
51.B解析:考查用指針引用字符串元素的方法。指針a通過數(shù)組元素下標來從頭逐個地引用字符串item中的字符,判斷不是0~9之間的數(shù)字時,就去掉這個字符,所以程序結(jié)束后,字符串item中就只剩下和兩個字符了。
52.D解析:本題考核的知識點是在自加運算符的運算對象。自加運算對象可以是整型變量也可以是實型變量,但不能是表達式和常量。本題中,#defined2定義了d為常數(shù)2,不能在對d進行自加運算.故選項D是個不正確的語句,所以,4個選項中選項D符合題意。
53.A
54.B解析:一個函數(shù)可以帶回—個整型值、字符值、實型值等,但也可以帶回指針型數(shù)據(jù),即地址。本題的定義中,包括括號和*號,由于()優(yōu)先級高于*。故它是一個返回整型指針的函數(shù)。
55.C學(xué)號是學(xué)生表S的主鍵,課號是課程表C的主鍵,所以選課表SC的關(guān)鍵字就應(yīng)該是與前兩個表能夠直接聯(lián)系且能唯一定義的學(xué)號和課號,所以選擇C項。
56.B
57.A數(shù)據(jù)庫管理系統(tǒng)的三級模式結(jié)構(gòu)由外模式、模式和內(nèi)模式組成。
外模式,或子模式,或用戶模式,是指數(shù)據(jù)庫用戶所看到的數(shù)據(jù)結(jié)構(gòu),是用戶看到的數(shù)據(jù)視圖。模式,或邏輯模式,是數(shù)據(jù)庫中對全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特性的描述,是所有用戶所見到的數(shù)據(jù)視圖的總和。外模式是模式的一一部分。內(nèi)模式,或存儲模式,或物理模式,是指數(shù)據(jù)在數(shù)據(jù)庫系統(tǒng)內(nèi)的存儲介質(zhì)上的表示,即對數(shù)據(jù)的物理結(jié)構(gòu)和存取方式的描述。
58.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)為正確答案。
59.B
60.B在本題中,題目告訴我們程序中調(diào)用scanf函數(shù)給變量a輸入數(shù)值的方法是錯誤的,要求我們找出其錯誤的原因,這是一類錯誤原因分析題。
在本題程序中,首先定義兩個整型指針變量p和q,然后定義兩個整型變量a和b,讓指針變量p執(zhí)行變量a,接著輸出提示語句“請輸入a”,執(zhí)行格式輸入語句scanf,由于輸入語句的輸入列表中給出的應(yīng)該是輸入的地址,即存放輸入數(shù)據(jù)的存儲地址,但在本題的輸入語句中給出的是*p,這表示一個數(shù)值,而非地址。因此,無法完成數(shù)據(jù)的輸入,若要完成輸入,可以將*p改為p。
根據(jù)上面的分析,我們可以知道本題程序出錯的原因是*p表示的是變量a的值,而不是變量a的地址。因此本題正確答案選B。
61.C嚴格按照格式進行輸入和輸出。%2d%3d,a是兩位輸入,b是三位,輸出時亦是這個格式。
62.C”anf(”%c”,&c),輸入的字符,題目中輸入了0,字符0,對應(yīng)于ASCIl碼為48,因此for循環(huán)中,i的范圍從0~5,均小于48,if條件不成立,直接執(zhí)行下一條語句,執(zhí)行語句prinff,因此得到的結(jié)果是0,1,2,3,4。故答案為C選項。
63.B本題考查do-while語句和if…else語句。do-while語句的功能是先執(zhí)行循環(huán)體再判斷條件,所以先判斷if語句的條件,y=-4,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出y,然后將x的值減1
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《營業(yè)稅課件》課件
- 《統(tǒng)計調(diào)查技能模塊》課件
- 《認識寶島臺灣》課件
- 《王老吉的市場營銷》課件
- 《網(wǎng)頁設(shè)計與鑒賞》課件
- 2025年中考語文文言文總復(fù)習(xí)-教師版-專題01:文言文閱讀之理解實詞含義(講義)
- 鞋業(yè)生產(chǎn)線采購招標合同三篇
- 教育機構(gòu)話務(wù)員工作總結(jié)
- 藥品醫(yī)療器械銷售心得分享
- 兒童感染科護理工作總結(jié)
- 四人合伙投資協(xié)議書范本
- 成都市農(nóng)貿(mào)市場建設(shè)技術(shù)要求(2019年版)(完整版)
- 2024-2030年版中國IPVPN服務(wù)行業(yè)發(fā)展現(xiàn)狀及投資商業(yè)模式分析報告
- 【7歷期末】安徽省蕪湖市弋江區(qū)2023~2024學(xué)年七年級上學(xué)期期末考試歷史試卷(含解析)
- 北京市海淀區(qū)2021-2022學(xué)年第一學(xué)期四年級期末考試語文試卷(含答案)
- 2024-2030年中國企業(yè)大學(xué)行業(yè)運作模式發(fā)展規(guī)劃分析報告
- 房地產(chǎn)激勵培訓(xùn)
- 山東省濟南市2023-2024學(xué)年高二上學(xué)期期末考試地理試題 附答案
- 期末復(fù)習(xí)試題1(試題)-2024-2025學(xué)年二年級上冊數(shù)學(xué)北師大版
- 【MOOC】微型計算機原理與接口技術(shù)-南京郵電大學(xué) 中國大學(xué)慕課MOOC答案
- 安徽省蕪湖市2023-2024學(xué)年高一上學(xué)期期末考試 生物 含解析
評論
0/150
提交評論