




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2022-2023年吉林省松原市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列程序的運行結果是()。#include<stdio.h>#defineADD(x)x+xmain{intm=1,n=2,k=3;intS=ADD(m+n)*k;printf("s=%d",s);}A.sum=18B.sum=10C.sum=9D.sum=25
2.在一個元素個數(shù)為N的數(shù)組里,找到升序排在N/5位置的元素的最優(yōu)算法時間復雜度是()A.O(n)B.O(nlogn)C.O(n(logn)2)D.O(n3/2)
3.在下面的二維數(shù)組定義中,正確的是()。
A.inta[5][];
B.inta[][5];
C.inta[][3]={{1,3,5},{2}};
D.inta[](10);
4.設有定義:intn=0,*p=&n,**q=&p;則下列選項中正確的賦值語句是()。
A.p=1;B.*q=2;C.q=p;D.*p=5;
5.有以下程序:#include<stdio.h>voidfunc(intn){staticintnum=1);num=num+n;printf("%d",num);}main(){funo(3);func(4);printf("n");}程序運行后的輸出結果是()。A.48B.34C.35D.45
6.有以下程序:#include<stdio.h>main(){inti=0.s=0;for(;;)if(i==3‖i==5)continue;if(i==6)break;i++;s+=i;}printf("%d\n",s);程序運行后的輸出結果是()。
A.10B.13C.21D.程序進入列循環(huán)
7.合法的數(shù)組初始化語句是()。
A.chara="string";
B.inta[5]={0,1,2,3,4,5};
C.inta[]="string"
D.chara[]={0,1,2,3,4,5};
8.下列特征中不是面向對象方法的主要特征的是()。
A.多態(tài)性B.繼承C.封裝性D.模塊化
9.程序設計方法要求在程序設計過程中,()。
A.先編制出程序,經(jīng)調試使程序運行結果正確后再畫出程序的流程圖
B.先編制出程序,經(jīng)調試使程序運行結果正確后再在程序中的適當位置處加注釋
C.先畫出流程圖,再根據(jù)流程圖編制出程序,最后經(jīng)調試使程序運行結果正確后再在程序中的適當位置處加注釋
D.以上3種說法都不對
10.以下程序的輸出結果是()。
f(intb[],intm,intn)
{inti,s=0;
for(i=m;i<n;i=i+2)s=s+b[i];
returns;
}
voidmain()
{intx,a[]={1,2,3,4,5,6,7,8,9};
x=f(a,3,7);
printf("%d\n",x);
}A.A.10
B.18
C.8
D.15
11.檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。
A.確認測試B.集成測試C.驗證測試D.驗收測試
12.下面程序的運行結果是()。#include<stdio.h>main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}
A.-1B.1C.8D.0
13.以下四個選項,不能看作一條語句的是()。
A.{;}B.a=0,b=0,c=0;C.if(a>0);D.if(b==0)m=1;n=2;
14.下面敘述中錯誤的是()。
A.軟件測試的目的是發(fā)現(xiàn)錯誤并改正錯誤
B.對被調試的程序進行“錯誤定位”是程序調試的必要步驟
C.程序調試通常也稱為Debug
D.軟件測試應嚴格執(zhí)行測試計劃,排除測試的隨意性
15.將10階對稱矩陣壓縮存儲到一維數(shù)組A中,則數(shù)組A的長度最少為()
A.100B.40C.55D.80
16.以下程序執(zhí)行后sum的值是()。
A.15
B.14
C.不確定
D.0main(){inti,sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}
17.請選出正確的程序段
A.int*p;scanf("%d",p);…
B.int*s,k;*s=100;…
C.int*s,k;char*p,c;s=&k;p=&c;*p='a';…
D.int*s,k;char*p,e;s=&k;p=&c;s=p;*s=1;…
18.若有代數(shù)式“”(其中e僅代表自然對數(shù)的底數(shù),不是變量),則以下能夠正確表示該代數(shù)式的C語言表達式是()。
A.sqrt(fabs(pow(n,x)+exp(x)))
B.sqrt(fabs(pow(n,x)+pow(x,e)))
C.sqrt(abs(nx+ex))
D.sqrt(fabs(pow(x,n)+exp(x)))
19.有以下程序段當執(zhí)行上述程序段,從鍵盤上輸A,555667777123后,y的值為()。
A.566.0B.55566.0C.7777.0D.566777.0
20.有以下程序:
程序運行后的輸出結果是()。
A.0B.1C.2D.3
二、2.填空題(20題)21.性結構中,隊列的操作順序是先進先出,而棧的操作順序是______。
22.執(zhí)行以下程序后,輸出#號的個數(shù)是【】。
#include<stdio.h>
main()
{inti,j;
for(i=1;i<5;i++)
for(j=2;j<=i;j++)putchar('#');
}
23.數(shù)據(jù)模型按不同應用層次分成3種類型,它們是概念數(shù)據(jù)模型、【】和物理數(shù)據(jù)模型。
24.在長度為n的有序線性表中進行二分查找。最壞的情況下,需要的比較次數(shù)為【】。
25.本程序用改進冒泡法對數(shù)組a[n]的元素從小到大排序,請在程序空白處填空。
voidbubble(inta[],intn)
{intj,k,jmax,temp;
jmax=【】;
do{
k=0;
for(j=0;j<jmax;j++)
if(a[j]>a[j+1])
{temp=a[j];a[j]=a[j+1];a[j+1]=temp;k=【】;
jmax=k;
}while(jmax>0);}
26.性表的多種存儲結構中,最簡單的方法是【】。
27.閱讀下面程序段,則執(zhí)行后輸出的結果是【】。
#include"stdio.h"
main()
{charfun(char,int);
chara=′A′;
intb=13;
a=fun(a,b);
putchar(a);}
charfun(chara,intb)
{chark;
k=a+b;
returnk;}
28.有以下程序:
main()
{charstr[]="xyz",*ps=str;
while(*ps)ps++;
for(ps--;ps-str>=0;ps--)puts(ps);
}
執(zhí)行后的輸出結果是【】。
29.C語言用于結構化程序設計的3種基本結構是______、選擇結構和循環(huán)結構。
30.已有定義如下:
structnode
{intdata;
structnode*next;
}*p;
以下語句調用malloc函數(shù),使指針p指向一個具有structnode類型的動態(tài)存儲空間。請?zhí)羁铡?/p>
p=(structnode*)malloc(【】);
31.線性表的存儲結構主要分為順序存儲結構和鏈式存儲結構。隊列是一種特殊的線性表,循環(huán)隊列是隊列的【】存儲結構。
32.下列程序的運行結果是______。
#defineP(A)printf("%d",A)
main()
{intj,a[]={1,2,3,4,5,6,7),i=5;
for(j=3;j>1;j--)
{switch(j)
{case1:
case2:P(a[i++]);break;
case3:P(a[--i]);
}
}
}
33.問題處理方案的正確而完整的描述稱為______。
34.以下程序的輸出是【】。
main()
{
charstr1[]="Howdoyoudo",*p1=str1;
strcpy(str1+strlen(str1)/2,"esshe");
printf("%s\n",p1);
}
35.有以下程序
main()
{intx=1,y=1,z=1;
y=y+z;x=x+y;
printf("%d",x<y?y:x);
printf("%d",x<y?x++:y++);
printf("%d",x);
printf("%d",y);
}
運行結果是【】
36.以下程序的輸出結果是______。
voidfun()
{staticinta=0;
a+=2;printf("%d",a);
}
main()
{intcc;
for(cc=1;cc<4;cc++)fun();
printf("\n");
}
37.下列程序的輸出結果是16.00,請?zhí)羁眨?/p>
main()
{
inta=9,b=2;
floatx=【】,y=1.1,z;
z=a/2+b*x/y+1/2;
printf("%5.2f\n",z);
}
38.執(zhí)行下列語句段后,x的值是______。
int*p,x;
x=100;
p=&x;
x=*p+50;
39.已知head指向一個帶頭結點的單向鏈表,鏈表中每個結點包含數(shù)據(jù)域(data)和指針域(next),數(shù)據(jù)域為整型。以下函數(shù)求出鏈表中所有鏈結點數(shù)據(jù)域的和值,作為函數(shù)值返回。請在橫線處填入正確內容。
structlink
{intdata;structlink*next;}
main()
{structlink*head;
......
sum(head);
......
}
sum(【】);
{structlink*p;ints=0;
p=head->next;
while(p){s+=p->data;p=p->next;}
return(s);}
40.設有以下定義和語句,則*(*(p+2)+1)的值為【】。
inta[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
三、1.選擇題(20題)41.設已包含頭文件<string.h>,下列程序段的運行結果是()。chars1[]={"ACDEF"};chars2[]="ABC";strcpy(s1,s2);printf("%d",strlen(s1));
A.3B.4C.6D.5
42.下列選項中正確的語句組是()。
A.chars[8];s={"Beijing"};
B.char*s;s={"Beijing"};
C.chars[8];s="Beijing";
D.char*s;s="Beijing";
43.sizeof(float)是()。
A.一種函數(shù)調用B.一種函數(shù)定義C.一個浮點表達式D.一個整型表達式
44.數(shù)據(jù)的存儲結構是指______。
A.數(shù)據(jù)所占的存儲空間量B.數(shù)據(jù)的邏輯結構在計算機中的表示C.數(shù)據(jù)在計算機中的順序存儲方式D.存儲在外存中的數(shù)據(jù)
45.在C語言中,運算對象必須是整型數(shù)的運算符是()。
A.%B.\C.%和\D.**
46.程序運行結果為______。#defineR3.0#definePI3.1415926#defineL2*PI*R#defineSPI*R*Rmain(){printf("L=%fS=%f\n",L,S);}
A.L=18.849556S=28.274333
B.18.849556=18.84955628.274333=28.274333
C.L=18.84955628.274333=28.274333
D.18.849556=18.849556S=28.274333
47.一個算法應該具有“確定性”等五個特性,下面對另外四個特性的描述中錯誤的是()。
A.有零個或多個輸入B.有零個或多個輸出C.有窮性D.可行性
48.索引屬于()。
A.模式B.內模式C.外模式D.概念模式
49.下列敘述中,不符合良好程序設計風格要求的是
A.程序的效率第一,清晰第B.程序的可讀性好C.程序中要有必要的注釋D.輸入數(shù)據(jù)前要有提示信息
50.若有定義floata[15],*p=a;,且數(shù)組a的首地址為300H,則p+13所指向的數(shù)組元素的地址為()。
A.334HB.30DHC.352HD.31AH
51.若有以下定義和語句,則輸出的結果是______。charc1='b',c2='e';printf("%d,%c\n",c2-c1,c2-'a'+"A");
A.2,MB.3,EC.2,ED.輸出結果不確定
52.數(shù)據(jù)的存儲結構是指()。
A.數(shù)據(jù)所占的存儲空間
B.數(shù)據(jù)的邏輯結構在計算機中的存放形式
C.數(shù)據(jù)在計算機中的順序存儲方式
D.存儲在計算機外存中的數(shù)據(jù)
53.下列描述中正確的是()。
A.程序就是軟件
B.軟件開發(fā)不受計算機系統(tǒng)的限制
C.軟件既是邏輯實體,又是物理實體
D.軟件是程序、數(shù)據(jù)和相關文檔的集合
54.以下程序的輸出結果是
main()
{inta,i;a=0;
for(i=1;i<5;i++)
{switch(i)
{case0:
case3:a+=2;
case1:
case2:a+=3;
default:a+=5;}
}printf("%d\n",a);}
A.31B.13C.10D.20
55.若二維數(shù)組a有m列,且設a[0][0]位于數(shù)組的第一個位置上,則計算任一元素a[i][j]在數(shù)組中的位置的式子為()
A.i*m+jB.j*m+iC.i*m+j-1D.i*m+j+1
56.有如下程序main(){chars[]="ABCD",*p;for(p=s+1;p<s+4;p++)printf("%s\n",p);}該程序的輸出結果是
A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD
57.若有定義:“inta[2][3];”,則對a數(shù)組的第i行第j列元素的正確引用為()。
A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j
58.函數(shù)fun的返回值是fun(char*a,char*b){intnum=0,n=0;while(*(a+num)!='\0')num++;while(b[n]){*(a+num)=b[n];num++;n++;}returnnum;}
A.字符串a(chǎn)的長度B.字符串b的長度C.字符串a(chǎn)和b的長度之差D.字符串a(chǎn)和b的長度之和
59.有如下程序
main()
{floatx=2.0,y;
if(x<0.0)y=0.0;
elseif(x>10.0)y=1.0/x;
elsey=1.0;
printf("%f\n",y);}
該程序的輸出結果是
A.0.000000B.0.250000C.0.500000D.1.000000
60.設x、y和z是int型變量,且x=4,y=6,z=8,則下列表達式中值為0的是()。
A.x&&y
B.x<=y
C.x‖y+z&&y-z
D.!((x<y)&&!z‖1)
四、選擇題(20題)61.
62.下列程序的輸出結果是()。main{inti=1,j=2,k=3;if(i++==1&&(++j==3==||k++==3))printf("%d%d%d\n",i,j,k);}
A.123B.234C.223D.233
63.以下符合C語言語法的實型常量是
A.1.2E0.7B.3.33.145EC.E23D..4E-2
64.下列定義變量的語句中正確的是()。
A)int_int;B)double3int_;
C)charfor;D)floatUS&;
65.以下選項中,不合法的c語言用戶標識符是()。
A.a_bB.AaBcC.f1一一bD.一1
66.if語句的基本形式是:if(表達式)語句,以下關于“表達式”值的敘述中正確的是()。A.可以是任意合法的數(shù)值B.必須是整數(shù)值C.必須是正數(shù)D.必須是邏輯值
67.有以下程序:main{inta=0,b=0;a=10;/*給a賦值b=20;給b賦值*/printf(“a+b=%d\n”,a+b);/*輸出計算機結果*/}程序運行后的輸出結果是()。A.a+b=10B.a+b=30C.30D.出錯
68.
69.下列選項中不會引起二義性的宏定義是()。
A.#defineS(x)x*x
B.#defineS(x)(x)*(x)
C.#defineS(x)(x*x)
D.#defineS(x)((x)*(x))
70.HTTP協(xié)議的消息有()兩種類型。
A.發(fā)送消息和接收消息B.請求消息和響應消息C.消息頭和消息體D.實體消息和控制消息
71.有以下程序:
程序運行后的輸出結果是()。
A.22B.76C.72D.62
72.有以下結構體說明、變量定義和賦值語句
73.有以下程序
#include<stdio.h>
main()
{charcl,c2;
c1=A+8-4
c2=A+8-5;
printf("%C,%d\n",cl,c2);
}
已知字母A的ASCIl碼為65,程序運行后的輸出結果是()。
A.E,69B.D,69C.E,DD.輸出無定值
74.
75.下列敘述中錯誤的是()。
A.C程序可以由多個程序文件組成
B.一個c語言程序只能實現(xiàn)一種算法
C.c程序可以由一個或多個函數(shù)組成,
D.一個C函數(shù)可以單獨作為一個C程序文件存在
76.設有定義:intx[2][3];,則以下關于二維數(shù)組X的敘述錯誤的是()。
A.x[0]可看做是由3個整型元素組成的一維數(shù)組
B.x[0]和x[l]是數(shù)組名,分別代表不同的地址常量
C.數(shù)組X包含6個元素
D.可以用語句x[o]=0;為數(shù)組所有元素賦初值0
77.設p1和p2是指向同一個int型一維數(shù)組的指針變量,k為int型變量,則下列不能正確執(zhí)行的語句是_______。
A.k=*p1+*p2;B.p2=k;C.p1=p2;D.k=*p1*(*p2);
78.在E—R圖中,用來表示實體的圖形是()。
A.矩形B.橢圓形C.菱形D.三角形
79.設有定義語句:
intx[-6]={2,4,6,8,5,7),*p=X,i;
要求依次輸出X數(shù)組6個元素中的值,不能完成此操作的語句是()。A.A.for(i=0;i<6;i++)printf("%2d",*(p++));
B.for(i=0;i<6;i++)printf("%2d",*(pq-i));
C.for(i=0;i<6;i++)printf("%2d",*p++);
D.for(i=0;i<6;i++)printf("%2d",*(p)++);
80.有以下程序
#include<stdio.h>
voidfun(char**p)
{p=p+2;
printf("%s\n",*p);
}
main()
{char*a[]={"Morning","Afternoon","Evening","Night"};
fun(a);
}
程序的運行結果是
A.rning
B.a(chǎn)fternoon
C.ternoon
D.Evening
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:對M名學生的學習成績,按從高到低的順序找出前m(m≤10)名學生來,并將這些學生數(shù)據(jù)存放在一個動態(tài)分配的連續(xù)存儲區(qū)中,此存儲區(qū)的首地址作為函數(shù)值返回。
請修改程序中的錯誤,使它能得出正確的結果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。
試題程序:
六、程序設計題(1題)82.使用vc++2010打開文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),其功能是在一組得分中,去掉一個最高分和一個最低分,然后求平均值,并通過函數(shù)返回該值。函數(shù)形參a指向存放得分的數(shù)組,形參n中存放得分個數(shù)(n>2)。例如,若輸入8.4共10個得分,則輸出結果為8.687500。注意:部分源程序存放在文件prog1.c中,請勿改動主函數(shù)main()和其他函數(shù)中的任何內容,僅在函數(shù)fun()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.B本題考查帶參數(shù)的宏的定義:“#defineADD(x)x+x”中X代表m+n,故s寫成s=m+n+m+n*k=1+2+1+2*3=10。
2.A
3.C
4.D解析:選項A),B),C)的指針賦值表達方式都不正確,*p=5表達整數(shù)5放到指針p所指向的存儲單元中。注意:通過指針引用一個存儲單。
5.A第一調用func函數(shù)時輸出4,第二次調用func函數(shù)時num的值并不會釋放,仍然是上次修改后的值4,第二次調用結果為8,所以輸出結果是48。
6.D解析:程序第1次執(zhí)行for循環(huán)時,i=0,兩條if語句中的表達式都不成立,執(zhí)行i++;s+=i;此時i為1,s為1第2次循環(huán),兩條if語句中的表達式也不成立,執(zhí)行i++,s+=i,此時i為2,s為3;……;當i=3時,執(zhí)行continue,結束本輪循環(huán),不執(zhí)行i++;繼續(xù)執(zhí)行下一輪循環(huán),這樣一來i值始終為3,繼續(xù)continue,無終止條件,進入死循環(huán)。
7.D
8.DD。【解析】面向對象設計方法與面向過程設計方法有本質的不同,其基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。其特點包括:分類性、多態(tài)性、封裝性、模塊獨立性、繼承和多態(tài)性等。模塊化是結構化程序設計的特點。
9.D解析:程序設計的過程應是先畫出流程圖,然后根據(jù)流程圖編制出程序,所以選項A錯誤。程序中的注釋是為了提高程序的可讀性,注釋必須在編制程序的同時加入,所以,選項B和選項C錯誤。綜上所述,本題的正確答案為選項D。
10.A函數(shù)的功能是對數(shù)組某一區(qū)域內的元素隔個求和;a[3]=4,所以從4開始進行隔個求和,a[7]=8,即對4到8的元素隔個求和,4+6=10。
11.A本題主要考查軟件測試的基本知識。軟件測試的步驟可分為單元測試(模塊測試)、集成測試、確認測試和系統(tǒng)測試。
(1)單元測試是針對每個模塊進行的測試,它可從程序的內部結構出發(fā)設計測試用例,多個模塊可以平行、對立地測試。單元測試主要用于發(fā)現(xiàn)詳細設計和編程時犯下的錯誤。單元測試多采用白盒測試,輔之以黑盒測試。
(2)集成測試是在單元測試的基礎上,根據(jù)模塊結構圖將各個模塊連接起來,必須精心計劃,應提交集成測試計劃、集成測試規(guī)格說明和集成測試分析報告。主要目標是發(fā)現(xiàn)與接口有關的問題。集成測試可以發(fā)現(xiàn)概要設計時犯的錯誤。
(3)確認測試用于驗證軟件的功能和性能及其他特性是否與用戶的要求一致。確認測試主要用于發(fā)現(xiàn)需求分析時犯下的錯誤,一般使用黑盒法測試,以表明軟件符合需求說明書的要求,應該仔細設計測試用例和測試過程。確認測試必須有用戶參加,或以用戶為主,用戶應參與設計測試用例,通常情況下,主要使用生產(chǎn)中的實際數(shù)據(jù)進行測試,測試數(shù)據(jù)通過用戶接口輸入。
(4)系統(tǒng)測試是將已經(jīng)通過確認測試的軟件,作為整個計算機系統(tǒng)的元素與計算機硬件、外設和網(wǎng)絡等其他因素結合在一起,進行一系列的組裝測試和確認測試。系統(tǒng)測試的目的是通過與系統(tǒng)的需求定義做比較,發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合的地方。系統(tǒng)測試可以發(fā)現(xiàn)問題定義時犯下的錯誤。
12.D解析:本題考查“++”和“--”運算符,運算符“++”是操作數(shù)加1,而“--”則是操作數(shù)減1。在do-while循環(huán)中,首先執(zhí)行y--,再執(zhí)行--y。當y=2時,執(zhí)行y--,y的值變?yōu)?,--y使y值變?yōu)?,循環(huán)結束。執(zhí)行輸出時,先輸出y的值0,然后執(zhí)行y--,使y的值變?yōu)?1。
13.D解析:在if后面只能有一條語句,或一條復合語句,即用花括號將多條語句括起來。選項D)中沒有將兩條語句括起來,不能看成一條語句。
14.A軟件測試的目的是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程,并不涉及改正錯誤,所以選項A錯誤。程序調試的基本步驟有:錯誤定位、修改設計和代碼,以排除錯誤、進行回歸測試,防止引進新的錯誤。程序調試通常稱為Debug,即排錯。軟件測試的基本準則有:所有測試都應追溯到需求、嚴格執(zhí)行測試計劃,排除測試的隨意性、充分注意測試中的群集現(xiàn)象、程序員應避免檢查自己的程序、窮舉測試不可能、妥善保存測試計劃等文件。故答案為A選項。
15.C
16.C解析:C語言中,如果對定義的變量沒有賦初值,那么在后面使用時,變量的值是不確定的。所以,本程序中,沒有對sum賦初值,它的值不確定。在執(zhí)行了for循環(huán)語句后,sum的值也不確定的,所以,4個選項中選項C符合題意。
17.C解析:本題的選項A)和B)犯了同樣的錯誤,即指針變量在定義后并沒有指向具體的變量。也就是說,指針變量中沒有確定的地址值,它的值是不可預見的,所指的單元也是不可預見的,因此不能進行賦值操作。另外,在選項D)中,s是int型指針變量,p是char型指針變量,所指向的內存單元所占用的字節(jié)數(shù)是不同的,因而不能將字符指針變量p的值賦給整型指針變量s。
18.AB選項中函數(shù)“pow(x,e)”錯誤,應該直接使用“exp(x)”函數(shù)。C選項中函數(shù)“abs(nx+ex)”錯誤,應該使用fabs返回浮點數(shù)的絕對值。D選項中“pow(x,n)”參數(shù)順序錯誤。故本題答案為A選項。
19.A本題考查的是格式輸)ki$i數(shù),即按用戶指定的格式從鍵盤上把數(shù)據(jù)輸入到指定的變量之中,其中的格式命令可以說明最大域寬。在百分號(%)與格式碼之間的整數(shù)用于限制從對應域讀入的最大字符數(shù)。因此j的值為55,y的值為566.0,字符數(shù)組nanle的值為7777123。故本題答案為A)。
20.B第一次執(zhí)行外循環(huán)i的值為1,滿足條件,判斷第一次內循環(huán),j的值為3,不滿足條件,跳出內循環(huán)。第二次執(zhí)行外循環(huán)i的值為2,同理也不滿足內循環(huán)條件,跳出內循環(huán)。第三次執(zhí)行外循環(huán)i的值為3,此時進入內循環(huán)判斷條件時,條件成立,執(zhí)行m=m%j,m的值為1,跳出內循環(huán),跳出外循環(huán)打印m的值。
21.先進后出先進后出解析:隊列和棧都是線性結構,但是不同之處在于隊列的操作順序是先進先出,而棧的操作順序是先進后出。
22.66解析:本題中i循環(huán)執(zhí)行4次,當i=1時,j循環(huán)執(zhí)行0次;當i=2時,j循環(huán)執(zhí)行1次;當i=3時,j循環(huán)執(zhí)行2次;當i=4時,j循環(huán)執(zhí)行3次,所以輸出#號的個數(shù)是0+1+2+3=6。
23.邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型解析:數(shù)據(jù)是現(xiàn)實世界符號的抽象,而數(shù)據(jù)模型(datamodel)則是數(shù)據(jù)特征的抽象,它從抽象層次上描述了系統(tǒng)的靜態(tài)特征、動態(tài)行為和約束行為,為數(shù)據(jù)庫系統(tǒng)的信息表示與操作提供一個抽象的框架。數(shù)據(jù)模型按不同的應用層次分成3種類型,它們是概念數(shù)據(jù)模型(conceptualdatamodel)、邏輯數(shù)據(jù)模型(logicdatamodel)、物理數(shù)據(jù)模型(physicaldatamodel)。
24.log2n
25.n-1jn-1\r\nj解析:此題采用了do…while循環(huán)內嵌for循環(huán)的雙層循環(huán)結構來實現(xiàn)了數(shù)組元素的排序。數(shù)組元素通過首地址和數(shù)組下標的方式來引用的。
26.順序存儲順序存儲
27.NN解析:函數(shù)說明語句中的類型名必須與函數(shù)返回值的類型一致。本題實現(xiàn)的是在字符'A'的ASCII碼值上加上一個常數(shù),使之變成另一個ASCII碼值,從而輸出字符。
28.zyzXyzzyzXyz解析:本題考查字符型指針變量的應用。程序中字符指針變量ps指向字符串'xyz',while循環(huán)語句的作用使ps指向字符串結尾,for循環(huán)的執(zhí)行過程如下。
第一次循環(huán):ps指向字符串'z',輸出z。
第二次循環(huán):ps指向字符串'yz',輸出yz。
第三次循環(huán):ps指向字符串'xyz',輸出xyz。
29.順序結構順序結構解析:結構化程序有3種摹本結構,即順序結構、選擇結構(包括if語句和switch語句)和循環(huán)結構(包括for語句、while語句、do…while語句)。
30.sizeof(structnode)或4sizeof(structnode)或4解析:malloc(sizeof(struetnode))的作用是開辟一個長度為sizeof(struetnode)的內存區(qū)。(structnode*)的作用是使malloc返回的指針轉換為指向structnode類型數(shù)據(jù)的指針。
31.順序順序解析:線性表的存儲結構主要分為順序存儲結構和鏈式存儲結構。當隊列用鏈式存儲結構實現(xiàn)時,就稱為鏈隊列;當隊列用順序存儲結構實現(xiàn)時,就稱為循環(huán)表。因此,本題劃線處應填入“順序”。
32.5555解析:分析程序執(zhí)行過程,第一次循環(huán)時,j=3,i=5。因為switch(3),所以執(zhí)行case3,調用P(a[--i])=P(a[4])=P(5),輸出5;第二次循環(huán)時,j=2,i=4,因為switch(2),所以執(zhí)行case2,調用P(a[i++])-P(a[4])=P(5),輸出5,之后i自加等于5。
33.算法或程序或流程圖算法或程序或流程圖解析:算法是問題處理方案正確而完整的描述。
34.HowdoessheHowdoesshe解析:strcpy(str1,s1);字符串拷貝函數(shù),作用是將字符串s1拷貝到字符數(shù)組strl中去。strlen(str):測試字符串str的長度,函數(shù)的值為字符串中實際長度,不包括\'\\0\'在內。本題中strlen(str1)的值為13,則strcpy(strl+strlen(strl)/2,'esshe');相當于strcpy(strl+6,'esshe');,因此可得答案為Howdoesshe
35.3233
36.246
解析:本題,已知結果z=16.00,即16.0=a/2+b*x/y+1/2,分別把a、b,代入,得到16.0=9/2+2*x/1.1+1/2。因為a=9,a是整型,所以9/2的值在沒有進行類型轉換時,等于4,1/2同理,等于0。代入求一元一次方程,很容易就可以得出x=6.6。
38.150150解析:本題先給變量x賦初始值100,然后將指針p指向變量x,*p是取指針p所指地址的內容,即100,所以x=100+50=150。
39.structlink*headstructlink*head解析:考查用指針引用結構體變量成員數(shù)據(jù)的方法。因為本題中是用結構體變量構成了鏈表,所以要從鏈表頭節(jié)點,逐個節(jié)點的引用結構體的數(shù)據(jù)域,需要有指向結構體變量的指針,依次指向各個節(jié)點,即p=p->next,而用指針引用結構體成員數(shù)據(jù)的方法為:p->data。
40.6060解析:程序中定義a是一個3行2列的二維數(shù)組,p是指向兩個元素的一維數(shù)組指針,并讓p指向二維數(shù)組a的首行。則代碼*(*(p+2)+1)中的p+2指向二維數(shù)組a的第三行a[2],*(p+2)指向a[2[]0],*(p+2)+1指向a[2][1],*(*(p+2)+1)是引用a[2][1],其值是60。
41.A解析:頭文件<string.h>是字符串處理函數(shù)對應的頭文件,要想調用C語言的庫函數(shù)時,都要在程序中嵌入該函數(shù)對應的頭文件,否則無法使用庫函數(shù)。
strcpy(s1,s2)把s2中的字符串復制到s1中,所以結果就為s2的長度。
42.D解析:字符數(shù)組初始化可以有兩種方式:方式一,按單個字符的方式賦初值。方式二,把一個字符串作為初值賦給字符數(shù)組。選項A定義的字符數(shù)組長度為8,由于最后還要加一個“、0”做結束標志,所以賦給他的字符串長度應小于等于7;在給字符數(shù)組賦初值的時候,應該用花括號“{”和“}“將字符串括起來。將字符型指針變量指向字符串也有兩種方法,一是在定義指針變量時就給其賦初值,比如:char*p=“student”;二是給指針變量賦值,比如:p=“student”;(p已經(jīng)被定義為字符型指針變量;)。
43.D解析:sizeof(float)是c語言內部規(guī)定的用于計算單精度型變量(float)在計算機的內存中所占用的字節(jié)數(shù)量的函數(shù),返回一個整數(shù)值。
44.B解析:數(shù)據(jù)元素在計算機存儲空間中的位置關系與它們的邏輯關系不一定是相同的,而且一般不可能相同。數(shù)據(jù)的邏輯結構在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結構,也稱數(shù)據(jù)的物理結構。
45.A解析:在C語言中,“%”運算符兩側的運算數(shù)必須是整型。
46.A
47.B解析:算法是對特定問題求解步驟的一種描述,它是指令的有限序列,其中每一條指令表示一個或多個操作。算法具有五個重要特性:
①有窮性:一個算法必須總是在執(zhí)行有限步之后結束,且每一步都可在有限時間內完成。
②確定性:算法中每一步驟都必須有明確的定義,不允許有模棱兩可的解釋,也不允許有多義性,對于相同的輸入只能得出相同的輸出。
③可行性:算法中描述的操作可以通過已經(jīng)實現(xiàn)的基本運算執(zhí)行有限次來實現(xiàn)。
④輸入:一個算法有零個或多個的輸入。
⑤輸出:一個算法有一個或多個輸出,這些輸出是同輸入有著某些特定關系的量。
48.B解析:內模式(InternalSchemA)又稱物理模式(PhysicalSchemA),它給出了數(shù)據(jù)庫物理存儲結構與物理存取方法,如數(shù)據(jù)存儲的文件結構、索引、集簇及hash等存取方式與存取路徑。數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)具有高共享性和低冗余性,但不能完全避免數(shù)據(jù)冗余;數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)的不同出現(xiàn)應保持相同的值。
49.A解析:當今主導的程序設計風格是“清晰第一,效率第二”的觀點。結構化程序設計思想提出之前,在程序設計中曾強調程序的效率,而在實際應用中,人們更注重程序的可理解性。
50.C解析:解答本題,首先要明白在對指針進行加、減運算的時候,數(shù)字“1”不是十進制的數(shù)“1”,而是指'1'個存儲單元長度,而1個存儲單元長度占多少存儲空間,應該視具體情況而定。如果基本類型是int型,移動1個存儲單元的長度就是位移2個字節(jié),如果基本類型是float型,移動1個存儲單元的長度就是位移4個字節(jié)。所以p+13所指向的數(shù)組元素的地址:300H+(13*上標)4)H=352H。
51.B
52.B解析:數(shù)據(jù)的存儲結構,又稱為數(shù)據(jù)的物理結構,是數(shù)據(jù)的邏輯結構在計算機中的存放形式,數(shù)據(jù)的存儲結構有順序結構、鏈式結構、散列結構和索引結構等。
53.D解析:軟件是運行在計算機硬件之上的邏輯實體,包括程序、數(shù)據(jù)和相關的文檔,軟件的開發(fā)、運行對計算機系統(tǒng)具有依賴性,受計算機系統(tǒng)的限制。
54.A解析:本題考查用于多分支選擇的switch語句,其一般形式為:
switch(表達式)
{
case常量表達式1:語句1;
case常量表達式2:語句2;
…
case常量表達式n:語句n;
default:語句n+1;
}
其語義是:計算表達式的值,并逐個與其后的常量表達式值進行比較,當表達式的值與某個常量表達式的值相等時,即執(zhí)行其后的語句,然后不再進行判斷,繼續(xù)執(zhí)行后面所有case后的語句;如表達式的值與所有case后的常量表達式均不相等時,則執(zhí)行default后的語句。
55.D
56.D解析:本題考查指向字符串的指針的運算方法。指針變量p首先指向字符串中的第一個字符A,執(zhí)行p=s+1后,p指向字符串中的第二個字符B,然后輸出值'BCD'并換行。依次執(zhí)行循環(huán)語句。
57.A解析:本題考查如何通過地址來引用數(shù)組元素。通過地址來引用數(shù)組元素的方法有下列5種:
①a[i][j];②*(a[i]+j);③*(*(a+i)+j);④*(a[i])[j];⑤*(&a[0][0]+3*i+j)。
58.D解析:第一個while循環(huán)是字符串a(chǎn)的長度,第二個while是將字符串b接在a的后面,num在a串長度上繼續(xù)累計,為兩個字符串長度之和。
59.D解析:本題考查if語句中的一種表達方式,即:if卐lseif叀
該表達式的語句是:
if(表達式1)
語句1
elseif(表達式2)
語句2
elseif(表達式3)
語句3
else
語句4
厖
本題執(zhí)行elsey=1.0,并且以'%f'輸出。
60.D解析:本題考查邏輯運算符的使用。當“&&”的兩個運算對象都是邏輯1時,表達式才返回值是1;當“‖”的兩個運算對象至少有一個是邏輯1時,表達式返回值是1。選項A)中,x和y都是邏輯1。所以返回值是1:選項B)中,x=4<=y=6為邏輯1,所以返回值是1;選項C)中,y+z的值等于14,非0,y-z的值為-2,非0,所以邏輯表達式4‖14&&-2的值不為0;選項D)中,x<y為1,!z為0,1&&0為1,0‖1為1,因此,!1為0。
61.B
62.D本題考查自增運算符“++”、邏輯與運算符“&&”和邏輯或運算符“||”。自增運算符“++”出現(xiàn)在變量之前,表示先使用變量的值加l,再使用變量的值進行運算;出現(xiàn)在變量之后,表示先使用變量的值進行運算,再使用變量的值加l。當邏輯與運算符“&&’’兩邊的運算對象都為真時,邏輯表達式的值才為真;當邏輯或運算符“||”只要一個值為1,值就為1。根據(jù)運算符的優(yōu)先級,題中應先計算內層括號中的值。++j是先自加后運算,因此運算時j的值等于3,所以表達式++j=3成立,即表達式的值為1;1與任何數(shù)都為進行或(||)運算,結果都為1,因此k=3的表達式i++是先運算后自加,因此運算時i為1,所以i++=1成立,自加1后i=2。if語句的條件為真即“1”,所以輸出i、j、k的值分別是2,3,3。
63.D本題主要考查實型常量的合法表示。在C語言中,實型常量主要有兩種表現(xiàn)形式,分別為:
(1)十進制小數(shù)表示法。這種表示法中主要用數(shù)字和小數(shù)點組成實數(shù)。用這種表示法表示實數(shù)沒有什么其他的要求,不容易出錯。
(2)指數(shù)形式表示法,如123e3或123E3。用這種表示法表示實數(shù)需要注意以下事項。
①字母E之前必須有數(shù)字。
②字母E之后的數(shù)字必須為整數(shù)。
③字母E前后不能有空格字符。
根據(jù)前面的分析,不難看出本題中只有D選項的描述是正確的。在A選項中,由于E后面的數(shù)字是小數(shù)而不正確;在B選項中,由于E后面沒有數(shù)字而不正確;在選項C中,由于E之前沒有數(shù)字而不正確。
64.A用戶標識符不能為關鍵字,只能由數(shù)字,字母和下劃線組成,而且第一個必須為字母或下劃線。
65.CC語言規(guī)定,變量命名必須符合標識符的命名規(guī)則,c選項中包含了非法字符“一”,所以錯誤。標識符由字母、數(shù)字或下劃線組成,且第一個字符必須是大小寫英文字母或者下劃線,而不能是數(shù)字。
66.A
67.AC語言規(guī)定,注釋語句可以換行寫,并且一個“/*”和其后緊跟的第一個“*/”中間的部分是注釋內容,并且注釋部分的內容不參與程序的執(zhí)行,因此本題中沒有執(zhí)行“b=20”;這條語句。
68.B
69.D本題考查參數(shù)的宏替換。為避免二義性有些參數(shù)表達式必須加括號,否則在實參表達式替換時,會出現(xiàn)錯誤。例如x為(m+n)時替換A:m+n*m+n,所以選項D最符合條件。
70.B
71.C字符數(shù)組的元素數(shù)量在定義時已經(jīng)確定,與其存儲的內容無關,本題中語句chara[7]定義了由7個字符元素組成的字符數(shù)組,其sizeof(a)=7。字符數(shù)組常常存儲字符串,但其存儲的字符串長度與數(shù)組長度沒有直接關聯(lián)。c語言規(guī)定,字符串從首字符開始,以第一個值為ASCIl碼0的字符結尾,其中的非0字符數(shù)量就是字符串的長度。在本題
72.Aps一>age不是地址,不能用于scanf函數(shù)中。所以選擇A)。
73.A\n本值輸出兩個值,%c為輸出一個字母,0/4d輸出一個數(shù)字?!癆”的ASCIl碼為65,再加4之后為69,也就是字母E,所以本題A正確。
\n
74.D
75.B在一個C語言程序中可以進行多種算法的實現(xiàn),對算法的個數(shù)沒有規(guī)定,所以B錯誤。
76.Dx[0]是不能賦值的。
77.B解析:指針變量中只存放地址(指針),不要將—個整型量(或任何其他非地址類型的數(shù)據(jù))賦給—個指針變量,所以B是不正確的。
78.AA?!窘馕觥吭贓—R圖中,矩形表示實體;菱形表示聯(lián)系名;橢圓形表示實體的屬性。
79.D本題要求輸出每個元素的值,D選項中(*p)++等價于*p=*p+1,其僅僅是對*p加1,并沒有達到輸出其每個值的作用。
80.D本題主要考查指向指針的指針。在程序中,首先定義了一個fun函數(shù),函數(shù)無返回類型,函數(shù)的形參是一個指向指針的指針變量p,在該函數(shù)體中,首先將變量p的值加2,并保存在p中,根據(jù)指針變量的特性,這個加2是使指針變量往后移兩個單位,如果開始指向第一個元素,現(xiàn)在則指向第三個元素(注意:這里并不是指移動兩個字節(jié))。然后輸出*p,由于p是一個指向指針的變量,那么*p輸出的也不是單個數(shù)組,而是一個首地址對應的字符串或數(shù)組,在本題中輸出的是字符串。
在主函數(shù)中,定義一個指針數(shù)組a,并賦初值,然后調用函數(shù)fun,實參為a,輸出的應該是指針數(shù)組中第3個指針對應的字符串,即Evening。\r\n\r\n\r\n
81.
【解析】因為t是指向一個動態(tài)存儲空間,因此其是指針,而不是其中的內容,故把“*t=calloc(m,sizeof(STU))”改為“t=(structss*)calloc(m,sizeof(STU));”,而題目要求把學生的全部內容互換,因此即整個結構體,故把“t[k].num=b[j].hum;”改為“t[k]=b[j];”。
82.1doublefun(doublea[],intn)Doublesum=0,max,min;inti;max=min=a[0];for(i=0;i<n;i++){</n;i++)<n;i++)sum=sum+a[i];</n;i++)if(max<a[i])max=a[i];<n;i++)if(min>a[i])min=a[i];</n;i++)<n;i++)sum=sum-max-min;</n;i++)<n;i++)return(sum/(n-2));</n;i++)<n;i++)}</n;i++)<n;i++)設定3個變量,sum存放和值,max存放最大值,min存放最小值。max和min都賦為數(shù)組中第1個元素的值。利用循環(huán)將數(shù)組中元素累加到sum中,并找出最大值和最小值。sum值減去最大值和最小值。函數(shù)返回sum除以(元素個數(shù)減2)得平均值。</n;i++)2022-2023年吉林省松原市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列程序的運行結果是()。#include<stdio.h>#defineADD(x)x+xmain{intm=1,n=2,k=3;intS=ADD(m+n)*k;printf("s=%d",s);}A.sum=18B.sum=10C.sum=9D.sum=25
2.在一個元素個數(shù)為N的數(shù)組里,找到升序排在N/5位置的元素的最優(yōu)算法時間復雜度是()A.O(n)B.O(nlogn)C.O(n(logn)2)D.O(n3/2)
3.在下面的二維數(shù)組定義中,正確的是()。
A.inta[5][];
B.inta[][5];
C.inta[][3]={{1,3,5},{2}};
D.inta[](10);
4.設有定義:intn=0,*p=&n,**q=&p;則下列選項中正確的賦值語句是()。
A.p=1;B.*q=2;C.q=p;D.*p=5;
5.有以下程序:#include<stdio.h>voidfunc(intn){staticintnum=1);num=num+n;printf("%d",num);}main(){funo(3);func(4);printf("n");}程序運行后的輸出結果是()。A.48B.34C.35D.45
6.有以下程序:#include<stdio.h>main(){inti=0.s=0;for(;;)if(i==3‖i==5)continue;if(i==6)break;i++;s+=i;}printf("%d\n",s);程序運行后的輸出結果是()。
A.10B.13C.21D.程序進入列循環(huán)
7.合法的數(shù)組初始化語句是()。
A.chara="string";
B.inta[5]={0,1,2,3,4,5};
C.inta[]="string"
D.chara[]={0,1,2,3,4,5};
8.下列特征中不是面向對象方法的主要特征的是()。
A.多態(tài)性B.繼承C.封裝性D.模塊化
9.程序設計方法要求在程序設計過程中,()。
A.先編制出程序,經(jīng)調試使程序運行結果正確后再畫出程序的流程圖
B.先編制出程序,經(jīng)調試使程序運行結果正確后再在程序中的適當位置處加注釋
C.先畫出流程圖,再根據(jù)流程圖編制出程序,最后經(jīng)調試使程序運行結果正確后再在程序中的適當位置處加注釋
D.以上3種說法都不對
10.以下程序的輸出結果是()。
f(intb[],intm,intn)
{inti,s=0;
for(i=m;i<n;i=i+2)s=s+b[i];
returns;
}
voidmain()
{intx,a[]={1,2,3,4,5,6,7,8,9};
x=f(a,3,7);
printf("%d\n",x);
}A.A.10
B.18
C.8
D.15
11.檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。
A.確認測試B.集成測試C.驗證測試D.驗收測試
12.下面程序的運行結果是()。#include<stdio.h>main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}
A.-1B.1C.8D.0
13.以下四個選項,不能看作一條語句的是()。
A.{;}B.a=0,b=0,c=0;C.if(a>0);D.if(b==0)m=1;n=2;
14.下面敘述中錯誤的是()。
A.軟件測試的目的是發(fā)現(xiàn)錯誤并改正錯誤
B.對被調試的程序進行“錯誤定位”是程序調試的必要步驟
C.程序調試通常也稱為Debug
D.軟件測試應嚴格執(zhí)行測試計劃,排除測試的隨意性
15.將10階對稱矩陣壓縮存儲到一維數(shù)組A中,則數(shù)組A的長度最少為()
A.100B.40C.55D.80
16.以下程序執(zhí)行后sum的值是()。
A.15
B.14
C.不確定
D.0main(){inti,sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}
17.請選出正確的程序段
A.int*p;scanf("%d",p);…
B.int*s,k;*s=100;…
C.int*s,k;char*p,c;s=&k;p=&c;*p='a';…
D.int*s,k;char*p,e;s=&k;p=&c;s=p;*s=1;…
18.若有代數(shù)式“”(其中e僅代表自然對數(shù)的底數(shù),不是變量),則以下能夠正確表示該代數(shù)式的C語言表達式是()。
A.sqrt(fabs(pow(n,x)+exp(x)))
B.sqrt(fabs(pow(n,x)+pow(x,e)))
C.sqrt(abs(nx+ex))
D.sqrt(fabs(pow(x,n)+exp(x)))
19.有以下程序段當執(zhí)行上述程序段,從鍵盤上輸A,555667777123后,y的值為()。
A.566.0B.55566.0C.7777.0D.566777.0
20.有以下程序:
程序運行后的輸出結果是()。
A.0B.1C.2D.3
二、2.填空題(20題)21.性結構中,隊列的操作順序是先進先出,而棧的操作順序是______。
22.執(zhí)行以下程序后,輸出#號的個數(shù)是【】。
#include<stdio.h>
main()
{inti,j;
for(i=1;i<5;i++)
for(j=2;j<=i;j++)putchar('#');
}
23.數(shù)據(jù)模型按不同應用層次分成3種類型,它們是概念數(shù)據(jù)模型、【】和物理數(shù)據(jù)模型。
24.在長度為n的有序線性表中進行二分查找。最壞的情況下,需要的比較次數(shù)為【】。
25.本程序用改進冒泡法對數(shù)組a[n]的元素從小到大排序,請在程序空白處填空。
voidbubble(inta[],intn)
{intj,k,jmax,temp;
jmax=【】;
do{
k=0;
for(j=0;j<jmax;j++)
if(a[j]>a[j+1])
{temp=a[j];a[j]=a[j+1];a[j+1]=temp;k=【】;
jmax=k;
}while(jmax>0);}
26.性表的多種存儲結構中,最簡單的方法是【】。
27.閱讀下面程序段,則執(zhí)行后輸出的結果是【】。
#include"stdio.h"
main()
{charfun(char,int);
chara=′A′;
intb=13;
a=fun(a,b);
putchar(a);}
charfun(chara,intb)
{chark;
k=a+b;
returnk;}
28.有以下程序:
main()
{charstr[]="xyz",*ps=str;
while(*ps)ps++;
for(ps--;ps-str>=0;ps--)puts(ps);
}
執(zhí)行后的輸出結果是【】。
29.C語言用于結構化程序設計的3種基本結構是______、選擇結構和循環(huán)結構。
30.已有定義如下:
structnode
{intdata;
structnode*next;
}*p;
以下語句調用malloc函數(shù),使指針p指向一個具有structnode類型的動態(tài)存儲空間。請?zhí)羁铡?/p>
p=(structnode*)malloc(【】);
31.線性表的存儲結構主要分為順序存儲結構和鏈式存儲結構。隊列是一種特殊的線性表,循環(huán)隊列是隊列的【】存儲結構。
32.下列程序的運行結果是______。
#defineP(A)printf("%d",A)
main()
{intj,a[]={1,2,3,4,5,6,7),i=5;
for(j=3;j>1;j--)
{switch(j)
{case1:
case2:P(a[i++]);break;
case3:P(a[--i]);
}
}
}
33.問題處理方案的正確而完整的描述稱為______。
34.以下程序的輸出是【】。
main()
{
charstr1[]="Howdoyoudo",*p1=str1;
strcpy(str1+strlen(str1)/2,"esshe");
printf("%s\n",p1);
}
35.有以下程序
main()
{intx=1,y=1,z=1;
y=y+z;x=x+y;
printf("%d",x<y?y:x);
printf("%d",x<y?x++:y++);
printf("%d",x);
printf("%d",y);
}
運行結果是【】
36.以下程序的輸出結果是______。
voidfun()
{staticinta=0;
a+=2;printf("%d",a);
}
main()
{intcc;
for(cc=1;cc<4;cc++)fun();
printf("\n");
}
37.下列程序的輸出結果是16.00,請?zhí)羁眨?/p>
main()
{
inta=9,b=2;
floatx=【】,y=1.1,z;
z=a/2+b*x/y+1/2;
printf("%5.2f\n",z);
}
38.執(zhí)行下列語句段后,x的值是______。
int*p,x;
x=100;
p=&x;
x=*p+50;
39.已知head指向一個帶頭結點的單向鏈表,鏈表中每個結點包含數(shù)據(jù)域(data)和指針域(next),數(shù)據(jù)域為整型。以下函數(shù)求出鏈表中所有鏈結點數(shù)據(jù)域的和值,作為函數(shù)值返回。請在橫線處填入正確內容。
structlink
{intdata;structlink*next;}
main()
{structlink*head;
......
sum(head);
......
}
sum(【】);
{structlink*p;ints=0;
p=head->next;
while(p){s+=p->data;p=p->next;}
return(s);}
40.設有以下定義和語句,則*(*(p+2)+1)的值為【】。
inta[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
三、1.選擇題(20題)41.設已包含頭文件<string.h>,下列程序段的運行結果是()。chars1[]={"ACDEF"};chars2[]="ABC";strcpy(s1,s2);printf("%d",strlen(s1));
A.3B.4C.6D.5
42.下列選項中正確的語句組是()。
A.chars[8];s={"Beijing"};
B.char*s;s={"Beijing"};
C.chars[8];s="Beijing";
D.char*s;s="Beijing";
43.sizeof(float)是()。
A.一種函數(shù)調用B.一種函數(shù)定義C.一個浮點表達式D.一個整型表達式
44.數(shù)據(jù)的存儲結構是指______。
A.數(shù)據(jù)所占的存儲空間量B.數(shù)據(jù)的邏輯結構在計算機中的表示C.數(shù)據(jù)在計算機中的順序存儲方式D.存儲在外存中的數(shù)據(jù)
45.在C語言中,運算對象必須是整型數(shù)的運算符是()。
A.%B.\C.%和\D.**
46.程序運行結果為______。#defineR3.0#definePI3.1415926#defineL2*PI*R#defineSPI*R*Rmain(){printf("L=%fS=%f\n",L,S);}
A.L=18.849556S=28.274333
B.18.849556=18.84955628.274333=28.274333
C.L=18.84955628.274333=28.274333
D.18.849556=18.849556S=28.274333
47.一個算法應該具有“確定性”等五個特性,下面對另外四個特性的描述中錯誤的是()。
A.有零個或多個輸入B.有零個或多個輸出C.有窮性D.可行性
48.索引屬于()。
A.模式B.內模式C.外模式D.概念模式
49.下列敘述中,不符合良好程序設計風格要求的是
A.程序的效率第一,清晰第B.程序的可讀性好C.程序中要有必要的注釋D.輸入數(shù)據(jù)前要有提示信息
50.若有定義floata[15],*p=a;,且數(shù)組a的首地址為300H,則p+13所指向的數(shù)組元素的地址為()。
A.334HB.30DHC.352HD.31AH
51.若有以下定義和語句,則輸出的結果是______。charc1='b',c2='e';printf("%d,%c\n",c2-c1,c2-'a'+"A");
A.2,MB.3,EC.2,ED.輸出結果不確定
52.數(shù)據(jù)的存儲結構是指()。
A.數(shù)據(jù)所占的存儲空間
B.數(shù)據(jù)的邏輯結構在計算機中的存放形式
C.數(shù)據(jù)在計算機中的順序存儲方式
D.存儲在計算機外存中的數(shù)據(jù)
53.下列描述中正確的是()。
A.程序就是軟件
B.軟件開發(fā)不受計算機系統(tǒng)的限制
C.軟件既是邏輯實體,又是物理實體
D.軟件是程序、數(shù)據(jù)和相關文檔的集合
54.以下程序的輸出結果是
main()
{inta,i;a=0;
for(i=1;i<5;i++)
{switch(i)
{case0:
case3:a+=2;
case1:
case2:a+=3;
default:a+=5;}
}printf("%d\n",a);}
A.31B.13C.10D.20
55.若二維數(shù)組a有m列,且設a[0][0]位于數(shù)組的第一個位置上,則計算任一元素a[i][j]在數(shù)組中的位置的式子為()
A.i*m+jB.j*m+iC.i*m+j-1D.i*m+j+1
56.有如下程序main(){chars[]="ABCD",*p;for(p=s+1;p<s+4;p++)printf("%s\n",p);}該程序的輸出結果是
A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD
57.若有定義:“inta[2][3];”,則對a數(shù)組的第i行第j列元素的正確引用為()。
A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j
58.函數(shù)fun的返回值是fun(char*a,char*b){intnum=0,n=0;while(*(a+num)!='\0')num++;while(b[n]){*(a+num)=b[n];num++;n++;}returnnum;}
A.字符串a(chǎn)的長度B.字符串b的長度C.字符串a(chǎn)和b的長度之差D.字符串a(chǎn)和b的長度之和
59.有如下程序
main()
{floatx=2.0,y;
if(x<0.0)y=0.0;
elseif(x>10.0)y=1.0/x;
elsey=1.0;
printf("%f\n",y);}
該程序的輸出結果是
A.0.000000B.0.250000C.0.500000D.1.000000
60.設x、y和z是int型變量,且x=4,y=6,z=8,則下列表達式中值為0的是()。
A.x&&y
B.x<=y
C.x‖y+z&&y-z
D.!((x<y)&&!z‖1)
四、選擇題(20題)61.
62.下列程序的輸出結果是()。main{inti=1,j=2,k=3;if(i++==1&&(++j==3==||k++==3))printf("%d%d%d\n",i,j,k);}
A.123B.234C.223D.233
63.以下符合C語言語法的實型常量是
A.1.2E0.7B.3.33.145EC.E23D..4E-2
64.下列定義變量的語句中正確的是()。
A)int_int;B)double3int_;
C)charfor;D)floatUS&;
65.以下選項中,不合法的c語言用戶標識符是()。
A.a_bB.AaBcC.f1一一bD.一1
66.if語句的基本形式是:if(表達式)語句,以下關于“表達式”值的敘述中正確的是()。A.可以是任意合法的數(shù)值B.必須是整數(shù)值C.必須是正數(shù)D.必須是邏輯值
67.有以下程序:main{inta=0,b=0;a=10;/*給a賦值b=20;給b賦值*/printf(“a+b=%d\n”,a+b);/*輸出計算機結果*/}程序運行后的輸出結果是()。A.a+b=10B.a+b=30C.30D.出錯
68.
69.下列選項中不會引起二義性的宏定義是()。
A.#defineS(x)x*x
B.#defineS(x)(x)*(x)
C.#defineS(x)(x*x)
D.#defineS(x)((x)*(x))
70.HTTP協(xié)議的消息有()兩種類型。
A.發(fā)送消息和接收消息B.請求消息和響應消息C.消息頭和消息體D.實體消息和控制消息
71.有以下程序:
程序運行后的輸出結果是()。
A.22B.76C.72D.62
72.有以下結構體說明、變量定義和賦值語句
73.有以下程序
#include<stdio.h>
main()
{charcl,c2;
c1=A+8-4
c2=A+8-5;
printf("%C,%d\n",cl,c2);
}
已知字母A的ASCIl碼為65,程序運行后的輸出結果是()。
A.E,69B.D,69C.E,DD.輸出無定值
74.
75.下列敘述中錯誤的是()。
A.C程序可以由多個程序文件組成
B.一個c語言程序只能實現(xiàn)一種算法
C.c程序可以由一個或多個函數(shù)組成,
D.一個C函數(shù)可以單獨作為一個C程序文件存在
76.設有定義:intx[2][3];,則以下關于二維數(shù)組X的敘述錯誤的是()。
A.x[0]可看做是由3個整型元素組成的一維數(shù)組
B.x[0]和x[l]是數(shù)組名,分別代表不同的地址常量
C.數(shù)組X包含6個元素
D.可以用語句x[o]=0;為數(shù)組所有元素賦初值0
77.設p1和p2是指向同一個int型一維數(shù)組的指針變量,k為int型變量,則下列不能正確執(zhí)行的語句是_______。
A.k=*p1+*p2;B.p2=k;C.p1=p2;D.k=*p1*(*p2);
78.在E—R圖中,用來表示實體的圖形是()。
A.矩形B.橢圓形C.菱形D.三角形
79.設有定義語句:
intx[-6]={2,4,6,8,5,7),*p=X,i;
要求依次輸出X數(shù)組6個元素中的值,不能完成此操作的語句是()。A.A.for(i=0;i<6;i++)printf("%2d",*(p++));
B.for(i=0;i<6;i++)printf("%2d",*(pq-i));
C.for(i=0;i<6;i++)printf("%2d",*p++);
D.for(i=0;i<6;i++)printf("%2d",*(p)++);
80.有以下程序
#include<stdio.h>
voidfun(char**p)
{p=p+2;
printf
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高端全職太太生活補償與個人成長規(guī)劃合同
- 海外醫(yī)療機構租賃與運營管理協(xié)議
- 基本農(nóng)田保護與委托經(jīng)營管理合作合同(含土地流轉)
- 網(wǎng)紅咖啡連鎖品牌區(qū)域代理加盟及深度技術培訓協(xié)議
- 商業(yè)綜合體物業(yè)運營管理及維護合同
- 智能合約版權保護與交易補充協(xié)議
- 學生宿舍維修保養(yǎng)與質量保障協(xié)議
- 智能家居全屋語音控制系統(tǒng)租賃與智能家居設備智能家居系統(tǒng)智能維護協(xié)議
- 海外學術論壇組織與學術研討服務合同
- 機電設備維修技術 第3版 思考題與習題答案 第1、2章
- 戶內穿線合同協(xié)議
- 第18課《井岡翠竹》課件-統(tǒng)編版語文七年級下冊
- 2025年小學勞動技能大賽實施方案
- 2025年春《形勢與政策》大作業(yè):怎樣正確理解全過程人民民主的歷史邏輯、實踐邏輯與理論邏輯?與國家開放大學形勢與政策章節(jié)測試題【附答案】
- 中藥炮制技藝與藥效關系
- 甘肅民族師范學院招聘工作人員考試真題2024
- 藥學創(chuàng)新創(chuàng)業(yè)項目
- 大數(shù)據(jù)在汽車行業(yè)的創(chuàng)新應用研究
- 西安特教面試試題及答案
- 2025年河南省商丘市柘城縣中考一模英語試題(原卷版+解析版)
- 2025年安全培訓考核試題及答案
評論
0/150
提交評論