




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2021年寧夏回族自治區固原市全國計算機等級考試C語言程序設計測試卷一(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.若進棧序列為1,2,3,4,進棧過程中可以出棧,則下列不可能的一個出棧序列是______。
A.1,4,3,2B.2,3,4,1C.3,1,4,2D.3,4,2,1
2.在存儲數據時,通常不僅要存儲各數據元素的值,而且還要存儲()。
A.數據的處理方法B.數據元素的類型C.數據元素之間的關系D.數據的存儲方法
3.下列關于棧敘述正確的是A.棧頂元素最先能被刪除B.棧頂元素最后才能被刪除C.棧底元素永遠不能被刪除D.以上三種說法都不對
4.一個棧的初始狀態為空。現將元素1、2、3、4、5、A、B、C、D、E依次入棧,然后再依次出棧,則元素出棱的順序是()。A.A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.54321EDCBA
5.
6.假設某算法的計算時間可用遞推關系式T(n)=2T(n/2)+n,T(1)=1表示,則該算法的時間復雜度為()
A.O(logn)B.O(n*logn)C.O(n)D.O(n^2)
7.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結點訪問順序是()。
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);}程序運行后的輸出結果是()。A.9,0ne*WorldB.9,0ne*Dream!C.10,One*Dream!D.10,Ome*World
9.向一個棧頂指針為h的帶頭結點的鏈棧中插入指針s所指的結點時,應執行()操作。
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個結點,其中5個是葉子結點,則度為l的結點數為()。
A.16B.10C.6D.4
12.設有下列二叉樹:
對此二叉樹先序遍歷的結果為
A.ABCDEFB.DBEAFCC.ABDECPD.DEBFCA
13.有以下程序
#include<stdio.h>
main()
{charb,c;inti;
b=‘a’;c=‘A’;
for(i=0;i<6;i++)
{if(i%2)putchar(i+b);
elseputehar(i+c);
}printf(“\n”);
}
程序運行后的輸出結果是A.ABCDEFB.AbCdEfC.aBeDeFD.abcdef
14.若有定義“inta=1234,b=-5678;”,用語句“printf("%+-6d%+-6d",a,b);”輸出,以下正確的輸出結果是()。
A.+1234-5678(中間有一個空格,最后有一個空格)
B.+1234-5678(最前面有一個空格,中間有一個空格)
C.+-1234+-5678(最前面和最后均無空格)
D.1234-5678(中間有兩個空格,最后有一個空格)
15.
16.
17.同一個關系模型的任意兩個元組值()。
A.可以全相同B.不能全相同C.必須全相同D.以上都不對
18.下列關于棧的描述中錯誤的是()。
A.棧是先進先出的線性表B.棧只能順序存儲C.棧具有記憶作用D.對棧的插入刪除操作中,不需要改變棧底指針
19.設有二維數組A7×8,每個數據元素占8個字節存儲單元,順序存放,A第一個元素A0,0的存儲地址為1000,按行優先存放時,元素A3,4的地址為()。
A.1224B.1208C.1200D.1216
20.
二、2.填空題(20題)21.在索引查找或分塊查找中,首先查找【】,然后再查找相應的【】,整個索引查找的平均查找長度等于查找索引表的平均查找長度與查找相應子表的平均查找長度之和。
22.設有定義“struct{inta;floatb;charc;}abc,*p_abc=&abc;”,則對結構體成員a的引用方法可以是abc.a和p_abc【】a。
23.若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達式pow(y,fabs(x))的值為【】。
24.以下程序的輸出結果是【】。
main()
{char*p[]={"BOOL","OPK","H","SP"};
inti;
for(i=3,i>=0;i--,i--)printf("%c",*p[i]);
printf("\n");
}
25.設x、y、z為整型變量,且x=2,y=3,z=4,當執行以下語句后,x的值是______。
x*=(y++)+(--z);
26.數據結構分為邏輯結構與存儲結構,線性鏈表屬于【】。
27.已有定義:double*p;,請寫出完整的語句,利用malloc函數使p指向一個雙精度型的動態存儲單元______。
28.下列程序的循環次數是______。
x=2;
do
{x=x*x;}
while(!x);
29.以下程序的輸出結果是【】。
#include<stdio.h>
main()
{inta[5]={2,4,6,8,10},*p;
p=a;p++;
printf("%d",*p);
}
30.下列程序的輸出結果是______。
#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.函數fun的功能是計算xn
doublefun(doublex,intn)
{inti;doubley=1;
for(i=1;i<=n;i++)y=y*x;
returny;
}
主函數中已正確定義m、a、b變量并賦值,而且調用fun函數計算:m=a4+b4-(a+b)3。實現這一計算的函數調用語句為【】。
32.以下程序的輸出結果是【】。
#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函數處理字符時,必須在程序的開頭出現包含頭文件的命令行是【】。
34.若有下列定義和語句:
char*s1="12345",*s2="1234";
printf("%d\n",strlen(strcpy(s1,s2)));
則輸出結果為______。
35.用鏈表表示線性表的突出優點是______。
36.數據庫系統中實現各種數據管理功能的核心軟件是______。
37.以下程序給指針p分配三個double型動態內存單元,請填空。
#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.下列程序的運行結果是【】。
#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的結點有18個,則該二叉樹中有【】個葉子結點。
40.在關系模型中,把數據看成一個二維表,每一個二維表稱為一個______。
三、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.信息隱蔽的概念與下述哪一種概念直接相關()。
A.軟件結構定義B.模塊獨立性C.模塊類型劃分D.模塊耦合度
44.下列描述中正確的是()。
A.程序就是軟件
B.軟件開發不受計算機系統的限制
C.軟件既是邏輯實體,又是物理實體
D.軟件是程序、數據與相關文檔的集合
45.以下對C語言函數的有關描述中,正確的是
A.在C語言中調用函數時,只能把實參的值傳給形參,形參的值不能傳送給實參
B.C函數既可以嵌套定義又可以遞歸調用
C.函數必須有返回值,否則不能使用函數
D.函數必須有返回值,返回值類型不定
46.以下程序試圖把從終端輸入的字符輸出到名為abc.txt的文件中,直到從終端讀入字符#時結束輸入和輸出操作,但程序有錯。#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.函數fopen調用形式錯誤B.輸入文件沒有關閉C.函數fgetc調用形式錯誤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.假定當前盤符下有兩個如下文本文件:文件名a1.txta2.txt內容123#321#則下面程序段執行后的結果為#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.下面程序的運行結果是
#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.設有以下定義:inta=0;doubleb=1.25;charc='A';#defined2則下面語句中錯誤的是()。
A.a++;B.b++;C.c++;D.d++;
53.下面()不是軟件調試的主要方法?
A.搜索法B.原因排除法C.回溯法D.強行排錯法
54.定義int*swap()指的是______。
A.一個返回整型值的函數swap()
B.一個返回指向整型值指針的函數swap()
C.一個指向函數swap()的指針,函數返回一個整型值
D.以上說法均錯
55.設有表示學生選課的三張表,學生s(學號,姓名,性別,年齡,身份證號),課程c(課號,課名),選課SC(學號,課號,成績),則表sc的關鍵字(鍵或碼)為()。
A.課號,成績B.學號,成績C.學號,課號D.學號,姓名,成績
56.在下列敘述中,錯誤的一條是()
A.scanf()函數可以用來輸入任何類型的多個數據
B.數組名作函數參數時,也采用“值傳送”方式
C.如果形參發生改變,不會改變主調函數的實參值
D.函數的實參與形參的類型應一致
57.下列模式中,能夠給出數據庫物理存儲結構與物理存取方法的是A.內模式B.外模式C.概念模式D.邏輯模式
58.要求通過while循環不斷讀入字符,當讀入字母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.以下程序中調用scanf函數給變量a輸入數值的方法是錯誤的,其錯誤原因是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.下面程序的輸出結果是()。
main()
{inta,b;
scanf("%2d%3d",&a,&b);
printf("a=%db=%d\n",a,b);
}
A.a=12b=34
B.a=123b=45
C.a=12b=345
D.語句有錯誤
62.有以下程序:執行時輸入:0<;回車>;后,則輸出結果是()。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);}程序運行后的輸出結果是______。
A.12353514B.12353513C.12343514D.12343513
65.
66.有以下定義語句,編譯時會出現編譯錯誤的是()。
67.有以下程序:
程序運行時,輸入的值在哪個范圍才會有輸出結果()。
A.小于3的整數B.不等于10的整數C.大于3或等于10的整數D.大于3且不等10的整數
68.以下選項中不能用做C程序合法常量的是()。
A.1,234B.‘\123’C.123D.“\x7G”
69.下列敘述中正確的是()。
A.循環鏈表是非線性結構
B.雙向鏈表是非線性結構
C.只有一個根結點的數據結構不一定是線性結構
D.有一個以上根結點的數據結構不一定是非線性結構
70.
71.
72.設有定義:
73.有以下程序:
程序運行后的輸出結果是()。
A.0B.10C.20D.出錯
74.
75.以下敘述中正確的是()。
A.c語言程序將從源程序中第一個函數開始執行
B.可以在程序中由用戶指定任意一個函數作為主函數,程序將從此開始執行
C.c語言規定必須用main作為主函數名,程序從此開始執行,在此結束
D.main作為用戶標識符,用以命名任意一個函數作為主函數
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!<回車>
則輸出結果是()。
A.Thisisacat!
B.Thisisa
C.Thisisacat!
D.Thisisacat!
77.一名工作人員可以使用多臺計算機,而一臺計算機可被多名工作人員使用,則實體工作人員與實體計算機之間的聯系是()。
A.—對一B.—對多C.多對多D.多對一
78.以下選項中,不能作為合法常量的是
A.1.24e03B.1.34e0.3C.1.24e+3D.1.34e0
79.
80.以下關于結構化程序設計的敘述中正確的是()。
A.結構化程序使用goto語句會很便捷
B.在c語言中,程序的模塊化是利用函數實現的
C.一個結構化程序必須同時由順序、分支、循環三種結構組成
D.由三種基本結構構成的程序只能解決小規模的問題
五、程序改錯題(1題)81.下列給定的程序中,函數proc()的功能是:用選擇法對數組中的n個元素按從大到小的順序進行排序。請修改程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。試題程序:
六、程序設計題(1題)82.請編寫函數proc,該函數的功能是:將放在字符串數組中的M個字符串(每串的長度不超過N),按順序合并組成一個新的字符串。例如,若字符串數組中的M個字符串為:ABCDBCDEFGCDEFGHI則合并后的字符串內容應該是ABCDBCDEFGCDEFGHl。注意:部分源程序給出如下。請勿改動main函數和其他函數中的任何內容,僅在函數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,說明此時棧內必然有1,2,由于1先于2進淺,所以1不可能在2之前出棧,故選項C這種出棧序列是不可能的。
2.C
3.A棧是限定只在一端進行插入與刪除的線性表,按照“先進后出”或“后進先出”的原則組織數據。棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。
4.B棧是先進后出的原則組織數據,所以人棧最早的最后出棧,所以選擇B。
5.D
6.B
7.D解析:中序遍歷的遞歸算法定義:①遍歷左子樹;②訪問根結點;③遍歷右子樹。前序遍歷的遞歸算法定義:①訪問根結點;②遍歷左子樹;③遍歷右子樹。后序遍歷的遞歸算法定義:①遍歷左子樹;②遍歷右子樹;③訪問根結點。根據前序遍歷的結果可知,a是根結點。由中序遍歷的結果dgbaechf可知,d、g、b是左子樹的結點,e、c、h、f是右子樹的結點。再由前序遍歷的結果bdg可知,b是a左邊子樹的根,由cefh可知,c是a右邊子樹的根。再由中序遍歷的結果dgb可知,d、g是b左邊子樹的結點,b右邊子樹無結點。再由前序遍歷結果dg可知,d為b左子樹的根,g是以d為根的子樹的右結點。至此,a的左子樹已完全弄清楚了。同樣的道理,可以弄清楚以c為根的子樹的結點位置。所以可知后序遍歷的結果是D。
8.C本題輸出兩個結果,第一個是求字符串的長度。第二個是輸出的字符串,數組的下標是從0開始的,所以當str取1的時候,應為“One*Dream!”。
9.D
10.B
11.A根據二叉樹的性質,n=n0+n1+n2(n表示總結點數,n0表示葉子結點數,nl表示度數為1的結點數,n2表示度數為2的結點數),而葉子結點數總是比度數為2的結點數多1,所以n2=n1-1=5-1=4,而n=25,所以nl=n-n0-n2=25-5-4=16。
12.C解析:二叉樹的遍歷分為先序,中序、后序三種不同方式.本題要求先序遍歷,其遍歷順序應該為:訪問根結點->,先序遍歷左子樹->先序遍歷右子樹。按照定義,先序遍歷序列是ABDECF,故答案為C。
13.B解析:變量b和c中分別存放字符a和A的ASCII碼,當i的值對2求余非零時輸出ASCII碼為i+b)的字符;當i的值對2求余為零時輸出ASCII碼為i+c的字符。分析程序可知本題選B。
14.Aprintf函數參數包括格式控制字符串和輸出參數,其中格式控制字符串中除了格式控制字符外,其他字符原樣輸出。本題中的printf(“%+-6d%+-6d”,a,b);”,在%和格式控制字符d之間,“+”號表示輸出的數字帶正負號號表示輸出數據向左對齊,“6”表示輸出寬度,如果輸出數據的寬度不夠6,那么左對齊,右邊補空格。所以本題輸出+1234-5678(中間有一個空格,最后有一個空格)。本題答案為A選項。
15.D
16.A
17.B關系具有以下7個性質。①元組個數有限性:二維表中元組的個數是有限的。②元組的唯一性:二維表中任意兩個元組不能完全相同。③元組的次序無關性:二維表中元組的次序,即行的次序可以任意交換。④元組分量的原子性:二維表中元組的分量是不可分割的基本數據項。⑤屬性名唯一性:二維表中不同的屬性要有不同的屬性名。⑥屬性的次序無關性.二維表中屬性的次序可以任意交換。⑦分量值域的同一性:二維表屬性的分量具有與該屬性相同的值域,或者說列是同質的。滿足以上7個性質的二維表稱為關系,以二維表為基本結構所建立的模型稱為關系模型。本題答案為B選項。
18.B
\n棧是線性表的一種,它的特點是先進后出,并且只能在表的一端進行插入和刪除操作的線性表,入棧和出棧都是在棧頂進行,因此具有記憶作用,棧可以采用順序存儲,也可以采用鏈式存儲。
\n
19.A
20.D
21.索引表塊索引表\r\n塊
22.->->解析:若結構體變量abc有成員a,并有指針p_abc指向結構變量abc,則引用變量abc成員a的標記形式有abc.a和p_abc->a。
23.88解析:fabs函數功能是求x的絕對值,計算結果為double型。pow功能是計算x的y次方的值,計算結果同樣為double型。所以本題表達式相當于2.0的3.0次方,結果為8.000000。
24.SO
25.12。12。解析:表達式x*=(y++)+(--z)相當于先進行z的自減運算,再執行x=x*(y+z),最后y自加。因此,變量x的值為12,y和z的值分別是4和3。
26.存儲結構
27.p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);解析:malloc()函數只有一個參數,該參數指定了需要分配多少字節的內存。然后將分配好的內存塊的首地址作為void*(未知類型指針)返回.故標準的調用形式應該寫成:
p(double*)malloc(sizeof(double));
28.11解析:do…while語句的功能是:首先執行循環體語句,然后檢測循環控制條件表達式的值,若為真,則重復執行循環體語句,否則退出循環;do…while語句的特點是先執行后判斷,因此循環體至少執行1次.本程序中x=2不符合循環條件,所以只循環1次。
29.44解析:在主函數中,語句p=a;p++使用指針p指向數組a[1],所以輸出結果為4。
30.1234theend1,2,3,4,theend解析:本題考查帶參數的宏的定義。第1次循環,i=1時,調用PRINT(1),P(1)輸出1;第2次循環,i=2時,調用PRINT(2),P(2)輸出2:第3次循環,i=3時,調用PRINT(3),P(3)輸出3:第4次循環,i=4時,調用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);解析:函數fun(x,n)的作用是求x的n次方,因此a的4次方應該調用函數fun(a,4),b的4次方應該調用函數fun(b,4),a+b的3次方應該調用函數fun(a+b,3),所以題目中的數學表達式,寫成C程序中的語句為m=fun(a,4)+fun(b,4)-fun(a+b,3)。
32.1234123.512345.51234,123.5,12345.5解析:在primf()函數的格式控制符中:'%2d'表示輸出一個有符號整數,如果輸出長度小于2,則左端補以空格,否則按實際長度輸出。所以本題中的a按原樣輸出為1234:'%2.1尸表示輸出一個單精度實數,只輸出小數點后1位,后面若有小數則四舍五入,如果輸出長度小于2,則左端補以空格,否則按實際長度輸出。所以本題中的b四舍五入到小數點后1位再輸出為123.5;'%2.11f'除了表示輸出一個雙精度實數外,其余參數和'%2.1f'一樣。所以本題中的c四舍五入到小數點后1位再輸出為12345.5。故輸出結果是:1234,123.5,12345.5。
33.#include"stdio.h"#include'stdio.h'解析:使用putchar和getchar函數時,必須在程序的開頭出現包含頭文件#include'stdio.h'的命令行。putchar的函數調用形式為:putchar(字符變量或字符常量);getchar函數的調用形式為:變量=getchar();getchar后的一對圓括號內沒有參數,但這一對圓括號不可少。
34.44解析:strcpy(s1,s2)函數的作用是將字符串s2中的內容拷貝到字符串s1中的內容覆蓋。strlen()函數是求字符串的長度。本題實際上是要求s2字符串的長度,即是4。
35.便于插入和刪除操作。便于插入和刪除操作。解析:為了克服順序表中插入和刪除時需要移動大量數據元素的缺點,引入了鏈式存儲結構。鏈表表示線性表的突出優點是插入和刪除操作方便,不必移動數據元素,執行效率高。
36.數據庫管理系統數據庫管理系統解析:數據庫管理系統是數據庫的管理機構,它是一種系統軟件,負責數據庫中的數據組織、數據操縱、數據維護、控制及保護和數據服務等。
37.3*sizeof(double)或243*sizeof(double)或24解析:觀察程序可知,本題要求用malloc函數分配三個double型的動態內存單元。
38.77解析:程序中的if(i%7==0||i%11==0)是找出能被7或11整除的所有整數,a[j++]=i是將滿足條件的數放到a數組中,變量j記錄了滿足條件的數據個數,main函數通過變量n得到此數據個數。如果m的值為50,即表達式fun(10,aa,&n)為fun(50,aa,&n)時,輸出結果為:711142122283335424449
39.1919解析:根據二叉樹的性質:在任意一棵二叉樹中,度為。的結點(即葉子結點)總是比度為2的結點多一個。本題中度為2的結點數為18,故葉子結點數為18+1=19個。
40.關系關系解析:關系模型用;維表表示,則每個;維表代表一種關系。
41.B解析:大寫字母從'A'~'Z'的ASCII碼是連續的,所以如果當—個字符大于等于'A'且小于等于'z'時,那這個字符就一定是一個大寫字母,故選項C正確。C語言中的庫函數isupper()的作用也正是判斷一個字符是否為大寫字母的,故選項A正確。在ASCII碼中,小寫字母的編碼也是連續的,對應的小寫字符比大寫字符的ASCII碼值大32,所以選項D經過小寫字符-32后,換算成了對應的大寫字母'Z'和'A',所得到結果和選項C是一致的,故也是正確的。選項B中,C語言的邏輯表達式不能直接連寫,而應該寫成選項C那樣,故是錯誤的,應該選擇B。
42.D
43.B解析:信息隱蔽是指在一個模塊內包含的信息(過程或數據),對于不需要這些信息的其他模塊來說是不能訪問的。模塊獨立性是指每個模塊只完成系統要求的獨立的子功能,并且與其他模塊的聯系最少且接口簡單。衡量軟件的模塊獨立性的度量標準是耦合性和內聚性。一個模塊的耦合性越強,則該模塊的模塊獨立性越強。
44.D\r\n軟件是與計算機操作相關的計算機程序、規程、規則,以及可能有的文件、文檔及數據;軟件開發要受到計算機系統的限制;軟件是一個邏輯實體,不是物理實體,軟件具有抽象性。因此選項D正確。
45.A解析:C語言中的函數可以進行遞歸調用,但不能在函數中定義函數,即函數不能嵌套定義。函數可以沒有返回值,若有返回值,則返回值類型必須確定。
46.A解析:stdin是標準輸入設備的文件指針,不須定義直接可以使用,它隨系統的啟動而打開,隨系統的關閉而關閉,fgetc()函數的作用是從某個文件中讀取一個數據,其參數為要讀取文件的文件指針,所以本題中的調用形式是正確的。fopen()函數有兩個參數,第一個參數是打開的文件名,第二個參數是文件打開模式,兩個參數都是字符串,本例中“fout=fopen(\'abc.txt\',\'w\');”語句的fopen()函數參數是錯誤的,應該用雙引號'',正確的應改為“fout=fopen('abc.txt','w');”。所以,A選項為所選。
47.D解析:指針是地址,存放指針的變量是指針變量,不同類型的指針變量存放不同類型數據的地址,指針變量作為可存儲指針的變量,也要占用一定的存儲空間。
48.B解析:在while(E)中,表達式E可以是C語言中任意合法的條件表達式,但不能為空,由它來控制循環體是否執行。在選項B)中表達式E>0‖E<0是一個邏輯表達式。
49.D解析:在格式輸入中,要求給出的是變量的地址,而D)答案中給出的s[1]是一個值的表達式。
50.A解析:本題的功能是順序的讀兩個文本文件;依次輸出。當打開文件時出現錯誤,fopen函數將返回NULL。
51.B解析:考查用指針引用字符串元素的方法。指針a通過數組元素下標來從頭逐個地引用字符串item中的字符,判斷不是0~9之間的數字時,就去掉這個字符,所以程序結束后,字符串item中就只剩下和兩個字符了。
52.D解析:本題考核的知識點是在自加運算符的運算對象。自加運算對象可以是整型變量也可以是實型變量,但不能是表達式和常量。本題中,#defined2定義了d為常數2,不能在對d進行自加運算.故選項D是個不正確的語句,所以,4個選項中選項D符合題意。
53.A
54.B解析:一個函數可以帶回—個整型值、字符值、實型值等,但也可以帶回指針型數據,即地址。本題的定義中,包括括號和*號,由于()優先級高于*。故它是一個返回整型指針的函數。
55.C學號是學生表S的主鍵,課號是課程表C的主鍵,所以選課表SC的關鍵字就應該是與前兩個表能夠直接聯系且能唯一定義的學號和課號,所以選擇C項。
56.B
57.A數據庫管理系統的三級模式結構由外模式、模式和內模式組成。
外模式,或子模式,或用戶模式,是指數據庫用戶所看到的數據結構,是用戶看到的數據視圖。模式,或邏輯模式,是數據庫中對全體數據的邏輯結構和特性的描述,是所有用戶所見到的數據視圖的總和。外模式是模式的一一部分。內模式,或存儲模式,或物理模式,是指數據在數據庫系統內的存儲介質上的表示,即對數據的物理結構和存取方式的描述。
58.A解析:while循環的執行過程如下:(1)計算while后面圓括號中表達式的值.當值為非0時,執行步驟(2);當值為0時,執行步驟(4)。(2)執行循環體一次。(3)轉去執行步驟(1)。(4)退出循環。在選項A)中,表達式(ch=getchar())!='N'表示輸入的字符不等于N,如果這個條件表達式成立,則執行循環體,打印輸出輸入的字符。如果這個條件表達式不成立,即輸入的字符等于N,則退出循環.所以選項A)為正確答案。
59.B
60.B在本題中,題目告訴我們程序中調用scanf函數給變量a輸入數值的方法是錯誤的,要求我們找出其錯誤的原因,這是一類錯誤原因分析題。
在本題程序中,首先定義兩個整型指針變量p和q,然后定義兩個整型變量a和b,讓指針變量p執行變量a,接著輸出提示語句“請輸入a”,執行格式輸入語句scanf,由于輸入語句的輸入列表中給出的應該是輸入的地址,即存放輸入數據的存儲地址,但在本題的輸入語句中給出的是*p,這表示一個數值,而非地址。因此,無法完成數據的輸入,若要完成輸入,可以將*p改為p。
根據上面的分析,我們可以知道本題程序出錯的原因是*p表示的是變量a的值,而不是變量a的地址。因此本題正確答案選B。
61.C嚴格按照格式進行輸入和輸出。%2d%3d,a是兩位輸入,b是三位,輸出時亦是這個格式。
62.C”anf(”%c”,&c),輸入的字符,題目中輸入了0,字符0,對應于ASCIl碼為48,因此for循環中,i的范圍從0~5,均小于48,if條件不成立,直接執行下一條語句,執行語句prinff,因此得到的結果是0,1,2,3,4。故答案為C選項。
63.B本題考查do-while語句和if…else語句。do-while語句的功能是先執行循環體再判斷條件,所以先判斷if語句的條件,y=-4,!y為邏輯0,條件不成立,執行下面的else語句,輸出y,然后將x的值減1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 消火栓使用管理制度
- 村應急預案管理制度
- 污水費收費管理制度
- 獎學金發放管理制度
- 培訓站教師管理制度
- 洗選煤安全管理制度
- 月采購計劃管理制度
- 成品庫倉庫管理制度
- 品質管理與管理制度
- 商店街規章管理制度
- 2025浙江嘉興市海寧市嘉睿人力招聘5人筆試參考題庫附帶答案詳解析版
- 黨課課件含講稿:《關于加強黨的作風建設論述摘編》輔導報告
- GB/T 19023-2025質量管理體系成文信息指南
- 2025中考歷史高頻點速記大全
- 2025年北京西城區九年級中考二模英語試卷試題(含答案詳解)
- T/CECS 10378-2024建筑用輻射致冷涂料
- 多余物管理制度
- 2024北京朝陽區三年級(下)期末語文試題及答案
- DL5190.5-2019電力建設施工技術規范第5部分:管道及系統
- 河南省鄭州市高新區2023-2024學年下學期七年級期末英語試卷
- 國家開放大學《會計學概論》形考任務1-4參考答案
評論
0/150
提交評論