




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2022-2023年山西省忻州市全國計算機等級考試C語言程序設計測試卷(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.若有定義“doublea=22;inti=0,k=18;”,則不符合C語言規定的賦值語句是()。
A.i=(a+k)<=(i+k);B.i=a%11;C.a=a++,i++;D.i=!a;
2.二維數組A的元素都是6個字符組成的串,行下標i的范圍從0到8,列下標j的范圈從1到10,則存放A至少需要()個字節。
A.90B.180C.240D.270
3.對含有16個元素的有序表進行二分查找,關鍵字比較次數最多是()
A.3B.4C.5D.6
4.以下選項中的表達式調用庫函數依次求-4.5的絕對值、-4.0的平方根值、30°角的正弦值和2的3次方值。正確的調用是()
A.abs(-4.5)B.sqrt(-4.0)C.sin(3.1416/6.0)D.paw(2.0,3.0)
5.若定義了函數double*function(),則函數function的返回值為()。
A.實數型B.實數的地址C.指向函數的指針D.函數的地址
6.有以下程序:#include<stdio.h>voidfunc(intn){inti;for(i=0;i<=n;i++)printf("*"):printf("#");}main(){func(3);printf("????");func(4);printf("n\");程序運行后的輸出結果()。A.****#????***#
B.***#????****#
C.**#????****#
D.****#????*****#
7.已知小寫母a的ASCII碼為97,大寫字母A的ASCII碼為65,以下程序的結果是_______。main(){unsignedinta=32,b=66;printf("%c\n",a|B);}
A.66B.98C.bD.B
8.對于C語言的函數,下列敘述中正確的是()。
A.函數的定義不能嵌套,但函數調用可以嵌套
B.函數的定義可以嵌套,但函數調用不能嵌套
C.函數的定義和調用都不能嵌套
D.函數的定義和調用都可以嵌套
9.以下敘述中錯誤的是()。
A.改變函數形參的值,不會改變對應實參的值
B.函數可以返回地址值
C.可以給指針變量賦一個整數作為地址值
D.當在程序的開頭包含文件stdi0.h時,可以給指針變量賦NULL
10.設棧S的初始狀態為空,棧的容量為5,若入棧元素的順序是e1、e2、e3、e4、e5,則出棧元素的順序不可能是______。
A.e1、e2、e3、e4、e5
B.e5、e4、e3、e2、e1
C.e2、e4、e3、e5、e1
D.e3、e4、e1、e2、e5
11.
12.設有一個10階的對稱矩陣A,采用壓縮存儲方式,以行序為主存儲,a1,1為第一個元素,其存儲地址為1,每個元素占1個地址空間,則a8,5的地址為()。
A.13B.33C.18D.40
13.程序流程圖中帶有箭頭的線段表示的是()。
A.圖元關系B.數據流C.控制流D.調用關系
14.在Windows環境下,單擊當前窗口中的按鈕“”,其功能是A.將當前應用程序轉為后臺運行
B.退出Windows后再關機
C.終止當前應用程序的運行
D.退出Windows后重新啟動計算機
15.有以下程序:#include<stdio.h>main(){intt;scanf(“%d”,&t);if(t++<6)printf(“%d\n”,t);elseprintf(“%d\n”,t--);printf(“\n”);}執行時輸入6并按<Enter>鍵,則輸出結果是()。A.6B.8C.7D.5
16.已知字母a的ASCII碼為十進制數97,下面程序的輸出結果是()。#include<stdio.h>main(){charc1,c2;c1='a'+'6'-'0';c2='a'+'3'-'0';printf("%c,%c\n",c1,c2);}
A.輸出無定值B.d,eC.e,fD.g,d
17.以下敘述中,不正確的是()。
A.使用staticfloata定義的外部變量存放在內存中的靜態存儲區
B.使用floatb定義的外部變量存放在內存中的動態存儲區
C.使用staticfloatc定義的內部變量存放在內存中的靜態存儲區
D.使用floatd定義的內部變量存放在內存中的動態存儲區
18.以下選項中,當x為大于1的奇數時,值為0的表達式是A.x%2==1B.x/2C.x%2!=0D.x%2==0
19.對于如圖所示二叉樹采用中根遍歷,正確的遍歷序列應為()A.ABCDEFB.ABECDFC.CDFBEAD.CBDAEF
20.有以下程序:#include<stdio.h>main(){inti,j=0;chara[]=“ab123c4d56ef7gh89”;for(i=0;a[i];i++)if(a[i]>=‘0’&&a[i]<=‘9’)a[j++]=a[i];a[j]=‘\0’;printf(“%s”,a);}程序運行后的輸出結果是()。
A.123456789abcdefgh
B.abcdefgh
C.123456789
D.1234567896ef7gh89
二、2.填空題(20題)21.表示“整數x的絕對值大于5”時值為“假”的C語言表達式是______。
22.若有以下程序:
main()
{chara;
a='H'-'A'+'0';
printf("%c\n",a);
}
執行后的輸出結果是【】。
23.對下列二叉樹進行中序遍歷的結果為【】。
24.以下程序運行后的輸出結果是【】。
#include<stdio,h>
#include<string,h>
main()
{charch[]="abc".,x[3][4]:inti:
for(i=0;i<3:i++)strcpy(x[i],ch):
for(i=0;i<3:i++)printf("%s",&x[i][i]);
printf("\n")
}
25.以下程序的輸出結果是______。
voidfun()
{staticinta=0;
a+=2;printf("%d",a);
}
main()
{intcc;
for(cc=1;cc<4;cc++)fun();
printf("\n");
}
26.設有如下程序main(){intn1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(“%d”,n1);}}程序運行后,如果從鍵盤上輸入1298,則輸出結果為
27.下面的程序實現的是從指針p所指向的地址的n個數中,找出最大的和最小的數據,請填空。
fun(int*p,intn)
{int*q;
intmax,min;
max=min=*p;
for(q=p;______;q++)
if(*q>max)max=*q;
elseif(*q<min)min=*q;}
28.設x和y均為int型變量,且x=1,y=2,則表達式2.0+y/x的值為【】。
29.C語言用于結構化程序設計的3種基本結構是______、選擇結構和循環結構。
30.mystrlen函數的功能是計算str所指字符串的長度,并作為函數值返回。請填空。
intmystrlen(char*str)
{inti;
for(i=0;【】!='\0';i++);
return(i);}
31.以下程序的輸出結果是【】。
#include<string.h>
main()
{printf("%d\n",strlen("IBM\n012\1\\"));}
32.以下程序的運行結果是【】。
#include<stdio.h>
longfib(intg)
{switch(g)
{case0:return0;
case1:
case2:return1;}
return(fib(g-1)+fib(g-2));}
main()
{longk;
k=fib(5);
printf("k=%5ld\n",k);}
33.以下程序的運行結果是______。
#include<stdio.h>
main()
{FILE*fp;inta[10]={1,2,3,0,0},i;
fp=fopen("d2.dat","wb");
fwtite(a,sizeof(int),5,fp);
fwrite(a,sizeof(int),5,fp);
fclose(fp);
fp=fopen("d2.dat","rb");
fread(a,sizeof(int),10,fp);
fclose(fp);
for(i=0;i<10;i++)printf("%d",a[i]);
}
34.數據庫系統中實現各種數據管理功能的核心軟件稱為【】。
35.若a=10,b=20,則表達式!(a<b)的值是【】。
36.數據庫設計分為以下6個設計階段:需求分析階段、______、邏輯設計階段、物理設計階段、實施階段、運行和維護階段。
37.若有定義inta[4][4]={1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},則初始化后,a[1][1]得到的初值是______。
38.數據流圖的類型有【】和事務型。
39.下面的程序可對指定字符串中的字符串進行從大到小排序,請將程序填完整。(注:程序采用了冒泡排序法)
#include<stdio.h>
#include<string.h>
main()
{char*str="ABCDabcd",temp;
intn,i;
n=strlen(str);
while(n-->1)
for(i=0;i<n;i++)
if(str[i]<str[i+l])
{temp=【】;
str[i]=str[i+l];
【】=temp;
}
printf(【】);
}
40.在程序設計階段應該采取______和逐步求精的方法,把一個模塊的功能逐步分解,細化為一系列具體的步驟,繼而用某種程序設計語言寫成程序。
三、1.選擇題(20題)41.若變量都已正確說明,則以下程序段()。#include<stdio.h>main(){inta=8;intb=6;printf(a>b?"&&&a=%d":"!!!b=%d",a,B);}
A.輸出為:&&&a=8
B.輸出為:!!!b=8
C.輸出為:&&&a=8!!!b=6
D.全部錯誤
42.下列程序的輸出結果是()。#include<stdio.h>voidp(int*x){printf("%d",++*x);}voidmain(){inty=3;p(&y);}
A.3B.4C.2D.5
43.下面程序的功能是將從鍵盤輸入的兩個數由小到大排序輸出,當輸入一對相等數時結束循環。請選擇填空。#include<stdio.h>main(){inta,b,t;scanf("%d%d",&a,&b);while(______)}if(a>b){t=a;a=b;b=t;}printf("%d,%d\n",a,b);scanf("%d%d",&a,&b);}}
A.!a=bB.a!=bC.a==bD.a=b
44.有以下程序:main(){charstr[]="xyz",*ps=str;while(*ps)ps++;for(ps--;ps-str>=0;ps--)puts(ps);}執行后輸出結果是()。
A.yzxyZB.zyzC.zyzD.xxyxyzxyz
45.語句“a=2;p=&a;b=*p++;”執行后的結果是()。
A.a=3b=3B.a=2b=2C.a=2b=1D.a=2b=3
46.設有下列定義:structsk{intm;floatx;}data,*q;若要使q指向data中的m域,正確的賦值語句是()。
A.q=&data.m;
B.q=data.m;
C.q=(structsk*)&data.m;
D.q=(structsk*)data.m;
47.設有如下三個關系表:
下列操作中正確的是()。
A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S
48.下列對于軟件測試的描述中正確的是()。
A.軟件測試的目的是證明程序是否正確
B.軟件測試的目的是使程序運行結果正確
C.軟件測試的目的是盡可能多地發現程序中的錯誤
D.軟件測試的目的是使程序符合結構化原則
49.簡單的交換排序方法是()。
A.快速排序B.選擇排序C.堆排序D.冒泡排序
50.已知字母A的ASCⅡ碼為十進制數65,下面程序的輸出結果是()main(){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}
A.67,DB.B,CC.C,DD.不確定的值
51.下列程序的輸出結果是()。
main
{
doubled=3.2;intx,y;
x=1.2;y=(x+3.8)/5.0;
printf("%d\n",d*y);
}
A.3B.3.2C.0D.3.07
52.下列程序執行后的輸出結果是()。#include<stdio.h>voidfunc1(inti);voidfunc2(inti);charst[]="hello,friend!";voidfuncl(inti){printf("%c",st[i]);if(i<3){i+=2;func2(i);}}voidfunc2(inti){printf("%c",st[i]);if(i<3){i+=2;funcl(i);}}main(){inti=0;funcl(i);printf("\n");}
A.helloB.helC.hloD.hlm
53.下列描述中正確的是()。
A.在C語言程序中預處理是指完成宏替換和文件包含指定的文件的調用
B.預處理指令只能位于C源程序文件的首部
C.預處理命令可以放在程序中的任何位置
D.預處理命令結尾需要加分號
54.下列敘述中錯誤的是()。
A.計算機不能直接執行用C語言編寫的源程序
B.C程序經C編譯后,生成后綴為.obj的文件是一個二進制文件
C.后綴為.obj的文件,經連接程序生成后綴為.exe的文件是一個二進制文件
D.后綴為.obj和.exe的二進制文件都可以直接運行
55.下面程序的輸出結果是______。unsignedfun(unsignednum){unsignedk-I;do{k*=num%10;num/=10;}while(num);retum(k);}main(){unsignedn=26;printf("%d\n",fun(n));}
A.0B.4C.12D.無限次循環
56.下列程序的輸出結果是
#include"stdio.h"
main()
{inti,a=0,b=0;
for(i=1;i<10;i++)
{if(i%2==0)
{a++;
continue;}
b++;}
printf("a=%d,b=%d",a,b);}
A.a=4,b=4B.a=4,b=5C.a=5,b=4D.a=5,b=5
57.C語言提供的合法關鍵字是()
A.swicthB.cherC.CaseD.default
58.設有以下說明和定義:typedefunion{longi;intk[5];charc;}DATE;structdate{intcat;DATEcow;doubledog;}too;DATEmax;則下列語句的執行結果是______。printf("%d",sizeof(structdate)+sizeof(max));
A.26B.30C.18D.8
59.以下選項中,非法的字符常量是______。
A.'\t'B.'\17'C.\nD.'\xaa'
60.下列關系運算中,能使經運算后得到的新關系中元組個數少于原來關系中元組個數的是()。
A.選擇B.投影C.連接D.并
四、選擇題(20題)61.第
42
題
下面說明不正確的是
A.chara[10]="china";
B.chara[10],*p=a;p="china"
C.char*a;a="china";
D.chara[10],*p;p=a="china"
62.
63.
64.
65.三種基本結構中,能簡化大量程序代碼的是()。
A.順序結構B.分支結構C.選擇結構D.重復結構
66.以下選項中,不能作為合法常量的是()。
A.1.234e05B.1.234e+5C.1.234e0.5D.1.234e0
67.
68.分布式數據庫系統不具有的特點是
A.數據的物理分布性和邏輯整體性B.位置透明性和復制透明性
C.事物管理的集中性D.數據冗余
69.
70.
71.設有定義:“struct{charmarkp[l2];intnuml;doublenum2;}tl,t2;”,若變量均已正確賦初值,則以下語句中錯誤的是()。
A.t1=t2;
B.t2.num1=tl.numl;
C.t2.mark=tl.mark;
D.t2.num2=tl.num2;
72.
73.
74.對字符數組s賦值,不合法的一個是()。
A.chars[]="Beijing"
B.chars[20]={"Beijing"}
C.chars[20];s="Beijing"
D.chars[20]={’B,’e’,’i’,’j’,’i’,’n’,’g’}
75.下列選項中不是字符常量的是()。
A.'\v'B.'\x2a'C.'a'D."\0"
76.
77.有以下程序程序運托舌的輸出結果是()。
A.1,2B.1,0C.3,2D.0,0
78.下面敘述中正確的是(
)。A.全局變量的作用域一定比局部變量的作用域范圍大B.靜態類型變量的生存期貫穿于整個程序的運行期間C.函數的形參都屬于全局變量D.未在定義語句中賦值的auto變量和static變量的初值都是隨機值
79.若變量x,y已正確定義并賦值,以下符號C語言語法的表達式是()。
A)++x,y=x--B)x+1=y
C)x=x+10=x+yD)double(x)/10
80.
五、程序改錯題(1題)81.下列給定程序中,函數proc()的功能是:將m(1≤m≤10)個字符串反著連接起來,組成一個新串,放入pt所指字符串中,例如,把“ab、cd、ef9”3個字符串反著串連起來,結果是efgcdab。
請修改程序中的錯誤,使它能得出正確的結果。
注意:不要改動main()函數,不得增行或者刪行,也不得改變程序的結構!
試題程序:
六、程序設計題(1題)82.編寫函數fun,其功能是:求ss所指字符串中指定字符的個數,并返回此值。
例如,若輸入字符串123412132,輸入字符為l,則輸出3。
注意:部分源程序在文件PROGl.C中。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入你編寫的若干語句。
參考答案
1.B運算符“%”為二元運算符,具有左結合性,參與運算的量均為整型。B選項中的變量a是double型,不符合規定。故本題答案為B選項。
2.A
3.C
4.C
5.B
6.D本題考查簡單的for循環,func(3)由于i是從0開始,所以會輸出四個“*”和一個“#”,然后打印四個“?”func(4),會輸出五個“*”和一個“#”,所以答案選擇D。
7.C解析:位運算符“|”的作用是按位或,即兩個二進制數的相應位中只要有一個為1,該位的結果值為1。最后以字符型輸出,98對應的字符“b”
8.A
9.C指針變量的值只能是存儲單元地址,而不能是一個整數,故選項C錯誤。
10.D解析:棧是僅在表頭和表尾進行插入和刪除元素操作的線性表,其特點是“先進后出”。本題中,進棧的過程中可以出棧。選項D中,如果第一個出棧的元素為e3,由于入棧順序是e1、e2、e3,那么e3出棧后,棧中元素必定有e1和e2,因為e1先入棧,故e1應在e2后出棧,所以選項D是不可能的出棧順序。
11.C
12.B
13.C解析:程序流程圖是人們對解決問題的方法、思路或算法的一種描述。其中,圖框表示各種操作的類型,圖框中的文字和符號表示操作的內容,流程線表示操作的先后次序。帶箭頭的線段在數據流程圖中表示數據流。帶箭頭的線段在程序流程圖中表示控制流。題中給出的選項中,在圖元之間用帶有箭頭的線段表示圖元關系。在模塊之間用帶有箭頭的線段表示調用關系。構成程序流程圖的基本圖符及含義:→或↓表示控制流;□表示加工步驟;
表示邏輯條件。
14.C解析:在Windows環境下,單擊當前窗口中的按鈕“x”,其功能是終止當前應用程序的運行,關閉當前窗口。
15.C后綴自增運算“t++”表示先運算,再自加。語句“if(t++<6)printf(“%d\\n”,t);elseprintf(“%d\\n”,t--);”中t的初值為6,則“t++<6”,條件為假,t自增至7,執行“printf(“%d\\n”,t--);”,此時t=7,輸出t值為7,之后進行自減操作t=6。因此輸出的結果為7。故本題答案為C選項。
16.D解析:C語言規定,所有字符常量都可以化為整型常量來處理,因而字符常量也可以參與算術運算。注:字符常量參與算術運算時,其實是使用其對應的ASCII碼值進行計算。本題中,'a'對應的ASCII碼值是97。題中雖然沒有給'6'和'0'的ASCII碼值,但應該知道'6'-'0'是將字符'6'轉換成整數6的表達式,所以c1='a'+'6'-'0'=103,c2='a'+'3'-'0'=100,按照字符型輸出分別是g和d。
17.B
18.D解析:因為x的值為大于1的奇數,所以x除以2的余數等于1,因此,選項A)、C)中表達式的結果為真,不為0;對于選項B)來說,x除以2的商不會等于0;選項D)中表達式的結果為假,即等于0。
19.D
20.C題干中定義了字符數組a,它包含數字字符和字母字符。通過for循環,將a中所有的數字字符前移,舍去其他字符,并在數字字符后添加字符串結束符‘\\0’,for循環結束后,字符串a的值為:123456789。故本題答案為C選項。
21.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本題考查基本邏輯表達,“整數x的絕對值大于5”時值為“假”,即整數x的絕對值小于等于5,也就是整數x要大于等于-5且要小于等于5。這里“且”用“與(&&)”表示,所以C語言表達式為:(x>-5)&&(x<5)。
22.77解析:本題考查英文字母ASCII碼值的概念。字符參與運算的值是其對應的ASCII碼,字符H的ASCII碼為72,A的ASCII碼為65,0的ASCII碼為48,所以a=72-65+48=55,ASCII碼值為55的字符是7。
23.ACBDFEHGPACBDFEHGP解析:中序遍歷方法的遞歸定義;當二叉樹的根不為空時,依次執行如下3個操作:①按中序遍歷左子樹。②訪問根結點。③技中序遍歷右子樹。根據遍歷規則來遍歷本題中的二叉樹。首先遍歷F的左子樹,同樣按中序遍歷。先遍歷C的左子樹,即結點A,然后訪問C,接著訪問C的右子樹,同樣按中序遍歷C的右子樹,先訪問結點B,然后訪問結點D,因為結點D沒有右子樹,因此遍歷完C的右子樹,以上就遍歷完根結點F的左子樹。然后訪問根結點F,接下來遍歷F的右子樹,同樣按中序遍歷。首先訪問E的左子樹,E的左子樹為空,則訪問結點E,然后訪問結點E的右子樹,同樣按中序遍歷。首先訪問G的左子樹,即H,然后訪問結點G,最后訪問G的右子樹P。以上就把整個二叉樹遍歷一遍,中序遍歷的結果為ACBDFEHGP。因此,劃線處應填入“ACBDFEHGP”。
24.abcbccabcbcc解析:for循環用strcpy函數將字符數組ch的值'abc',分別復制給二維數組x的每一行,然后通過for循環先后打印出以x[0][0],x[1][1],x[2][2]開頭的字符串'abe','bc','c',所以輸出結果為:abcbcc。
25.246
26.89218921
27.
28.4.0或44.0或4
29.順序結構順序結構解析:結構化程序有3種摹本結構,即順序結構、選擇結構(包括if語句和switch語句)和循環結構(包括for語句、while語句、do…while語句)。
30.*(str+i)或str[i]*(str+i)或str[i]解析:str是指針變量,它指向字符型數據,在循環過程中,可以用*(str+i)來訪問字符串中的第i個元素,判斷是否是結束標志,如果不是,i=i+1,繼續取下一個元素進行判斷,直到*(str+i)的值為'\\0'為止,也可以用下標的方式引用字符,如*(str+i)相當于str[i]。
31.99解析:本題要輸出的結果是字符串'IBM\\n012\\1\\\\'的長度,'IBM'是3個字符,\'\\n\'是1個字符,'012'又是3個字符,最后的\'\\1\'和\'\\\\\'都是1個字符。所以最終字符串的長度應該是3+1+3+1+1=9。故本題應該填9。
32.k=5k=5解析:本題主要考查了函數的遞歸調用方法。g=0或\ue008g=1\ue009或g=2是遞歸的終止條件,然后用回代的方法從一個已知值推出下一個值,直到計算出最終結果。
33.12300123001,2,3,0,0,1,2,3,0,0,解析:本題考查文件讀寫函數fread和fwrite的用法。fwrite函數將數組a的前5個元素輸出到文件fp中兩次,共10個字節,再調用fread函數從文件fp中讀取這10個字節的數據到數組a中,此時數組a的內容就變為{1,2,3,0,0,1,2,3,0,0},最后的輸出結果為“1,2,3,0,0,1,2,3,0,0”。
34.數據庫管理系統數據庫管理系統(DBMS)
35.00解析:已知a=10,b=20,所以邏輯表達式a<b的值為true,即為1,在這個表達式前面有一個邏輯運算符!,表示反操作,所以整個語句的值應當為false,即為0。
36.概念設計階段(數據庫概念設計階段)概念設計階段(數據庫概念設計階段)
37.二維數組可以看成是按矩陣形式排列的,題目中給二維數組賦初值是按行分段賦值的,a[4][4]可以分解為4個一維數組,其數組名分別為a[O]、a[1]、a[2]、a[3],這4個一維數組都有4個元素,a[0]的元素為a[0][0]、a[0][1]、a[0][2]、a[0][3]。\r\n\r\n
38.變換型典型的數據流類型有兩種:變換型和事務型。變換型是指信息沿輸入通路進入系統,同時由外部形式變換成內部形式,進入系統的信息通過變換中心,經加工處理以后再沿輸出通路變換成外部形式離開軟件系統;在很多軟件應用中,存在某種作業數據流,它可以引發一個或多個處理,這些處理能夠完成該作業要求的功能,這種數據流就叫做事務。
39.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本題要求將字符串str中的字符用冒泡排序算法從大到小排列,其實過程是將相鄰兩個字符進行比較,如果當前字符小于下一個字符,則通過中間變量temp將字符兩兩交換,所以第—空應填:str[i],第二空應填str[i+1]最終打印輸出得到的字符串str,所以第三空應填'%s',str。
40.自頂向下自頂向下解析:在程序設計時,應先考慮總體,后考慮細節,逐步使問題具體化,對復雜的問題,應該設計一些子目標作為過渡,上述方法概括為:自頂向下,逐步細化。
41.A
42.B解析:本題考查函數調用時的參數傳遞。在函數調用時,形參是指向實參的指針變量,則printf的執行結果為3+1=4。
43.B解析:根據本題提出的條件可知,控制循環的表達式應該是所輸入的兩數互不相等(相等時結束循環),也即只有滿足這一條件時,才對兩數進行排序輸出操作,由此得出循環的控制表達式應該為a!=b。
44.C解析:執行while循環,使指針變量ps指向字符串“xyz”的字符串結束標志,然后執行for循環,先執行“ps--”,使ps指向字符“z”,故puts(ps)輸出結果為“z”:再次執行“ps--”,使ps指向字符“y”,故puts(ps)輸出結果為“yz”:再次執行“ps--”,使ps指向字符'x',故puts(ps)輸出結果為“xyz”,退出循環。所以,C選項正確。
45.B解析:執行p=&a;,將變量a的地址賦給指針變量p,運算符*和++的優先級相同,都具有自右向左的結合性,p++是先使用p的值再對p加1,則計算*p,即取p所指向的存儲單元的值2,賦值給b,再對p的值加1。輸出結果為a=2b=2。
46.C解析:利用強制類型轉換(structsk*),把整數型地址&data.m轉換成結構體變量指針賦給結構體指針變量q。
47.C解析:本題考查數據庫的關系代數運算。R表中只有一個域名A,有兩個記錄(也叫元組),分別是m和n;S表中有兩個域名,分別是B和C,其所對應的記錄分別為1和3。注意觀察表T,它是由R的第一個記錄依次與S的所有記錄組合,然后再由R的第二個記錄與S的所有記錄組合,形成的一個新表。上述運算恰恰符合關系代數的笛卡兒積運算規則。關系代數中,笛卡兒積運算用“×”來表示。因此,上述運算可以表示為T=R×S。因此,本題的正確答案為C。
48.C解析:關于軟件測試的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一書中給出了深刻的闡述:軟件測試是為了發現錯誤而執行程序的過程;一個好的測試用例是指很可能找到迄今為止尚未發現的錯誤的用例;一個成功的測試是發現了至今尚未發現的錯誤的測試。整體來說,軟件測試的目的就是盡可能多地發現程序中的錯誤。本題答案為C。
49.D解析:所謂的交換類排序方法是指借助數據元素之間的互相交換進行排序的一種方法,包括冒泡排序和快速排序,冒泡排序是一種最簡單的交換排序方法,它通過相鄰元素的交換,逐步將線性表變成有序。
50.A
51.C解析:本題中,程序先執行語句x=1.2;,根據賦值運算的類型轉換規則,先將double型的常量1.2轉換為int型,即取整為1,然后將1賦值給變量x。接下來執行語句y=(x+3.8)/5.0;根據運算符的優先級,先計算小括號內,再計算除法,最后執行賦值運算。小括號內的運算過程:先將整型變量x的值1轉換為double型1.0,然后與3.8進行加法運算,得到中間結果4.8。接著進行除法運算4.8/5.0,其結果小于1.0,這里沒有必要計算出精確值,因為接著進行賦值運算,賦值號左邊的變量y的類型為整型,于是對這個小于1.0的中間結果進行取整,結果為0,于是變量y的值為0,d*y的值也為0。注意:格式輸出語句printf的使用。
52.C解析:本題首先調用函數funcl(0),輸出st[0]=h,i值變為2,再調用函數func2(2),輸出st[2]=1,此時i<3,執行i+=2,i值變為4,然后再調用函數funcl(4),輸出st[4]=o,此時i值大于3,函數調用結束。因此,輸出結果為hlo。
53.C解析:本題考查預處理命令的特點,編譯預處理命令的特點:①為了區別一般的語句,預處理命令行都必須以“#”號開始,結尾不加分號;②預處理命令可以放在程序中的任何位置;③在程序中凡是以“#”號開始的語句行都是預處理命令行。
54.D
55.C解析:本題定義了一個fun函數,用于num求和,具體執行過程如下:
num=26:k=k*(num%10)=1*(26%10),所以k=6,num=num/10=2;
num=2:k=k*(num%10)=6*(2%10),所以k=12;num=num/10=0:
num=0:while條件不成立,所以返回k的值12。
56.B解析:continue語句的作用是跳過本次循環體中余下尚未執行的語句,接著再一次進行循環條件的判定。當能被2整除時,a就會增1,之后執行continue語句,直接執行到for循環體的結尾,進行i++,判斷循環條件。
57.D
58.B
59.C解析:C語言中字符常量是以單引號括起來的單個字符,或
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 特色小吃店品牌加盟合同
- 個人汽車抵押貸款合同續簽及展期協議
- 環境污染案件財產保全擔保合同
- 餐飲行業服務員績效考核勞動合同
- 公安面試題型及答案
- 滌綸纖維智能化
- 2025至2030年中國高嶺土專用干燥機行業投資前景及策略咨詢報告
- 2025至2030年中國電腦高速絡絲機行業投資前景及策略咨詢報告
- 2025至2030年中國LC液晶電視行業投資前景及策略咨詢報告
- 2025年中國高明亮度防水透濕阻燃面料行業投資前景及策略咨詢研究報告
- lemontree中英文對照打印版
- 統編版六年級語文下冊積累和課內閱讀專項復習課件
- 蘇寧云商財務報表分析
- 直流電阻測試儀說明書
- 患者跌倒的預防及管理課件
- 醫藥電子商務員工手冊36
- 【湖北版】三年級下冊生命安全教育教案
- 特殊作業檢查表
- DB44∕T 721-2010 通信鋼管塔(鐵塔)高處作業安全防護技術規范
- nm1系列塑料外殼式斷路器樣本
- 課程實施與課程評價課件(PPT 40頁)
評論
0/150
提交評論