編譯並運行以下程序的結果是
1. 用keil運行以下程序時出現error C141: syntax error near 'void' 是錯在哪了
在使用Keil編譯器運行程序時遇到了錯誤提示「error C141: syntax error near 'void'」。這個問題可能源於類型不匹配。具體來說,如果變數aa定義為unsigned char類型,而unm1和unm2定義為unsigned int類型,那麼編譯器在嘗試將這些不同類型的變數進行某種操作時,可能會產生類型不兼容的錯誤。
解決這個問題的方法是確保所有變數的類型一致。你可以嘗試將所有變數都定義為相同的類型。例如,如果決定將所有變數都定義為unsigned char類型,你可以進行以下修改:
原代碼可能類似於:
unsigned int aa,unm1,unm2;
修改後的代碼可以是:
unsigned char aa,unm1,unm2;
這樣的修改能夠使編譯器正確理解變數類型,並順利完成編譯。當然,具體的修改還需要根據實際的程序邏輯和需求來決定,這里提供的只是一個基本的解決思路。
如果還有其他錯誤信息或者具體的代碼片段,可以進一步提供詳細信息,以便更准確地定位問題所在。
在進行代碼修改時,建議詳細檢查變數的定義和使用情況,確保類型一致性,避免類似的問題再次發生。
另外,編譯器的錯誤信息通常會指出問題所在的行數和具體的錯誤內容,可以根據這些信息進行針對性的修改。
希望這些信息對你有所幫助。
2. 下面程序運行的結果是
問題一:下面程序的運行結果是 。 你應該就這一句不好理解吧?
for (i =0; ch[i]>=』0』 &&ch[i]=』0』 &&ch[i] 問題二:50、下面的程序,其運行的結果是…………………………………………… ( ) char c[5]={'a','b','\0','c' 答案是B
因為輸出%s時遇到\0結束,c指向c[0],所以輸出了c[0]和c[1],由於c[2]是\0,所以結束。
問題三:以下程序的運行結果是( )。 選B。a=d/100%9中,先是算數運算,從左到右,d/100=2,因為d是整型,100是整數,所以結果是整形,會忽略掉小數。2再對9求余,商0餘2。再進行賦值,a得2。
b=(-1)&&(-1)中,-1且-1為真。因為(-1)=(-1),所以該邏輯判斷為真,值為1。再賦值,b得1。
希望對你有幫助。
記得採納哈。
問題四:下面程序運行結果是怎麼得來的? 每次從ch數組中取一個字元
第一次取'6',第叮次取'0',第三次取'0'
在拼接的時候用s=10*s+ch[a]-'0';減去'0'是轉化成整數,比如'6'-'0'=6;每次乘以10是進位
具體過程就是
s=10*0+'6'-'0'=6;
s=10*6+'0'-'0'=60;
s=10*60+'0'-'0'=600;
問題五:下面程序的執行結果是什麼?為什麼? 10分 1.C
子類重新實現了虛函數
2.BC' constructor
DC' constructor
DC' destructor
BC' destructor
繼承類構造順序為先父類後子類,而析構順序則相反
3.會發生編譯錯誤(你確定沒寫錯?)
函數沒有實現聲明,即使聲明仍然會有Warning(最好把原先數組聲明為const char* pn[],相應的函數參數類型也要改變)
4.D::func() called
子類重新實現了虛函數
問題六:下面程序運行時,如果輸入字元A,則輸出的結果是______. 85--10070-8460--69不及格
A的ascii值為65,所以從上到下執行,因為每個case沒有break 所以全執行一遍
問題七:下列程序運行後的輸出結果是: n[j]=n[t]+1就是把n[t]的值加上1賦給n[j]。
首先循環:
for(t=0;t 問題八:下面程序的執行結果是__________。 B)i=4,j=3
i=sizeof(a); a有四個字元的空間
j=strlen(a); a字元串的長度是3
問題九:下面程序的執行結果是什麼?為什麼? 因為構造函數先調用基類,然後子類。而析構先調用子類,然後基類,所以輸出:
B b; 輸出In class base (先調用基類構造函數),然後輸出In class base(派生類A的構造函數),而B的構造函數沒有額外輸出。
b.fc(); 輸出In class B
base *p=new A; 輸出In class base (先調用基類構造函數),然後輸出In class base(派生類A的構造函數)
p->fc(); 輸出In class base(派生類的輸出),因子類A沒有覆蓋基類的fc() [我不確定是否筆誤為f()]
delete p; 因A析構沒有做事,輸出Destructing base object(基類的析構函數)
程序結束: 輸出Destructing B object,然後輸出Destructing base object
問題十:下面程序的運行結果是:( )。 main() k=1;【k=1】k
3. 編譯並運行以下程序,以下描述哪個選項是正確的1.class x2.protectied stri
選:行 2 出錯,不能成功編譯
4. C語言試題啊,求大神幫忙答案啊!
題號:1
以下正確的說法是( )
選項:
a、用戶若需要調用標准庫函數,調用前必須重新定義
b、用戶可以重新定義標准庫函數,若如此,該函數將失去原有意義
c、用戶系統根本不允許用戶重新定義標准庫函數
d、用戶若需要調用庫函數,調用前不必使用預編譯命令將該函數所在文件包括到用戶源文件中,系統自動尋找該文件
本題答案為d,無論是標准庫函數還是什麼函數,都是函數,都允許用戶重新定義和使用,使用的時候只需要用#include <XX.h>包括進來就可以了,也就是預編譯命令。其中#include就是預編譯命令。
題號:2
以下正確的函數定義形式是( )
選項:
a、double fun(int x,int y)
b、double fun(int x
c、int y)
d、double fun(int x,int y)
e、doubel fun(int x
f、int y)
函數的定義規則是這樣的:<函數返回類型> <函數名>(函數參數用逗號隔開){函數體}
函數聲明的規則是這樣的:<函數返回類型> <函數名>(函數參數用逗號隔開);
綜上所述,該題沒有正確答案,唯一接近正確答案的為ad。
題號:3
以下不正確的說法為( )
選項:
a、在不同函數中可以使用相同名字的變數
b、形式參數是局部變數
c、在函數內定義的變數只在本函數范圍內有效
d、在函數內的復合語句中定義的變數在本函數范圍內有效
C中有一個關鍵字為extern,專門把局部變數轉為全局變數,所以C是錯誤的。
本題答案為C
題號:4
建立函數的目的之一,以下正確的說法是( )
選項:
a、提高程序的執行效率
b、提高程序的可讀性
c、減少程序的篇幅
d、減少程序文件所佔內存
本題答案為a,
函數的增加,
b會使得程序的可讀性增加,這個可以理解,模塊化了,當然可讀性增加了
c,多次調用一個函數即可,不用重復的寫代碼,這個也可以理解
d,重復的代碼既然少了,整個程序的大小自然也小了,當然減少了程序文件所佔的內存
至於a的效率提高了,這個不對,因為函數多了,會頻繁的進行壓棧出棧的操作,加大cpu的工作負荷,整個程序的效率變低了。
題號:5
C語言規定,函數返回值的類型是由( )所決定。
選項:
a、return語句中的表達式類型
b、調用該函數時的主調函數類型
c、調用該函數是系統臨時指定
d、在定義該函數時所指定的函數類型
這個可以參考第二題,函數的定義規則,當然是由定義的時候確定的了。
本題答案為d。
題號:6
凡是函數中未指定存儲類別的局部變數,其隱含的存儲類別為( )
選項:
a、auto
b、static
c、extern
d、register
這個題目容易,沒有指定當然是自動指定的了。
本題答案為a。
另外一個小知識,我們平常看到的int a,b,c;實際上省略了auto,全部應該是 auto int a,b,c;
題號:7
以下程序的運行結果是( )void sub (int x,int y,int *z){*z=y-x;}main(){int a,b,c;sub
(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf("%4d,%4d,%4d",a,b,c);}
選項:
a、5, 2, 3
b、 -5, -12, -7
c、 -5, -12, -17
d、 5, -2, -7
void sub (int x,int y,int *z)
{
*z=y-x;
}
main()
{
int a,b,c;
sub(10,5,&a); 執行完這句a的值為-5;
sub(7,a,&b);執行完這句b的值為-12;
sub(a,b,&c);執行完這句c的值為-7
printf("%4d,%4d,%4d",a,b,c);
}
答案為b;
題號:8
若用數組名作為函數調用的實參,傳遞給形參的是( )
選項:
a、數組的首地址
b、數組第一個元素的值
c、數組中全部元素的值
d、數組元素的個數
本題答案為a
數組名為數組的首地址,也是數組第一個元素的值的地址。數組名是一個地址。
題號:9
若使用一位數組名作為函數實參,則以下正確的說法是( )
選項:
a、必須在主調函數中說明此數組的大小
b、實參數組類型與形參數組類型可以不匹配
c、在被調函數中,不需要考慮形參數組的大小
d、實參數組名與形參數組名必須一致
本題答案為a,
必須在主調函數中定義該數組的大小。也就是該數組大小應該被提前設定好。
int a[10]可以作為參數,int a[x]不可以作為參數。
題號:10
如果在一個復合語句中定義了一個變數,則有關該變數正確的說法是( )
選項:
a、只在該復合語句中有效
b、只在該函數中有效
c、在本程序范圍內均有效
d、為非法變數
答案為
5. 全國計算機等級考試三級筆試試題及答案
一、選擇題((1)—(40)每題1分,(41)—(50)每題2分,共60分)
下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項塗寫在答題卡相應位置上,答在試卷上不得分。
(1) 在32位計算機中,一個字長所佔的位元組數為( )。
A) 1
B) 2
C) 4
D) 8
(2) 與十進制數511等值的十六進制數為( )。
A) 1FF
B) 2FF
C) 1FE
D) 2FE
(3) 能將高級語言編寫的源程序轉換成目標程序的是( )。
A) 編程程序
B) 編譯程序
C) 解釋程序
D) 鏈接程序
(4) 在計算機系統中,存儲一個漢字的國標碼所需要的位元組數為( )。
A) 1
B) 2
C) 3
D) 4
(5) 下列帶有通配符的文件名中,能表示文件ABC.TXT的是( )。
A) *BC.
B) A.*
C) BC.*
D) .
(6) 在多媒體計算機系統中,不能用以存儲多媒體信息的是( )。
A) 光纜
B) 軟盤
C) 硬碟
D) 光碟
(7) DOS命令「COPY/?」的功能是( )。
A) 將當前盤當前目錄中的所有文件復制到當前盤的根目錄下
B) 將當前盤當前目錄中所有以單個字元命名的文件復制到當前盤的根目錄下
C) 以提示方式復制文件
D) 顯示COPY命令的幫助信息
(8) 在Windows環境下,若要將當前活動窗口存入剪貼板,則可以按( )。
A) Ctrl+PrintScreen鍵
B) Ctrl+PrintScreen鍵
C) Shift+PrintScreen鍵
D) PrintScreen鍵
(9) 在Windows環境下,單擊當前應用程序窗口中的「關閉」按鈕,其功能是( )。
A) 將當前應用程序轉為後台運行
B) 退出Windows後再關機
C) 退出Windows後重新啟動計算機
D) 終止當前應用程序的運行
(10) 在Windows環境中,粘貼按鈕是( )。
A) ctrl+A
B) ctrl+C
C) ctrl+X
D) ctrl+V
(11) 以下敘述中正確的是( )。
A) 構成C程序的基本單位是函數
B) 可以在一個函數中定義另一個函數
C) main()函數必須放在其它函數之前
D) 所有被調用的函數一定要在調用之前進行定義
(12) 以下選項中合法的實型常數是( )。
A) 5E2.0
B) E-3
C) .2E0
D) 1.3E
(13) 以下選項中合法的用戶標識符是( )。
A) long
B) _2Test
C) 3Dmax
D) A.dat
(14) 已知大寫字母A的ASCII碼值是65,小寫字母a的ASCII碼是97,則用八進製表示的字元常量『101』是( )。
A) 字元A
B)字元a
C)字元e
D)非法的常量
(15) 以下非法的賦值語句是( )。
A) n=(i=2,++i);
B)j++;
C) ++(i+1);
D)x=j>0;
(16) 設a和b均為double型變數,且a=5.5、b=2.5,則表達式(int)a+b/b的值是( )。
A)6.500000
B)6
C) 5.500000
D) 6.000000
(17) 已知i、j、k為int型變數,若從鍵盤輸入:1,2,3,使i的值為1、j的值為2、k的值為3,以下選項中正確的輸入語句是( )。
A) scanf(「%2d%2d%2d」,&i,&j,&k);
B) scanf(「%d %d %d」,&i,&j,&k);
C) scanf(「%d,%d,%d」,&i,&j,&k);
D) scanf(「i=%d,j=%d,k=%d」,&i,&j,&k);
(18) 與數學式子 對應的C語言表達式是( )。
A) 3*x^n(2*x-1)
B) 3*x**n(2*x-1)
C) 3*pow(x,n)*(1/(2*x-1))
D) 3*pow(n,x)/(2*x-1)
(19) 設有定義:long x=-123456L;,則以下能夠正確輸出變數x值的語句是( )。
A)printf(「x=%d
」,x);
B) printf(「x=%1d
」,x);
C)printf(「x=%8dL
」,x);
D)printf(「x=%LD
」,x);
(20) 若有以下程序:
main()
{ int k=2,i=2,m;
m=(k+=i*=k);printf(「%d,%d
」,m,i);
}
執行後的輸出結果是( )。
A) 8,6
B) 8,3
C) 6,4
D) 7,4
(21) 已有定義:int x=3,y=4,z=5;,則表達式!(x+y)+z-1 && y+z/2的值是( )。
A) 6
B) 0
C) 2
D) 1
(22) 有一函數, ,以下程序段中不能根據x值正確計算出y值的是( )。
A) if(x>0) y=1; B) y=0;
else if(x==0) y=0; if(x>0) y=1;
else y=-1; else if(x<0) y=-1;
C)y=0; D)if(x>=0)
if(x>=0); if(x>0) y=1;
if(x>0) y=1 ; else y=0;
else y=-1; else y=-1;
(23) 以下選項中,與k=n++完全等價的表達式是( )。
A) k=n,n=n+1
B) n=n+1,k=n
C) k=++n
D) k+=n+1
(24) 以下程序的功能是:按順序讀入10名學生4門課程的成績,計算出每位學生的平均分並輸出,程序如下:
main()
{ int n,k;
float score ,sum,ave;
sum=0.0;
for(n=1;n<=10;n++)
{ for(k=1;k<=4;k++)
{ scanf(「%f」,&score); sum+=score;}
ave=sum/4.0;
printf(「NO%d:%f
」,n,ave);
}
}
上述程序運行後結果不正確,調試中發現有一條語句出現在程序中的位置不正確。這條語句是( )。
A) sum=0.0;
B) sum+=score;
C) ave=sun/4.0;
D) printf(「NO%d:%f
」,n,ave);
(25) 有以下程序段
int n=0,p;
do{scanf(「%d」,&p);n++;}while(p!=12345 &&n<3);
此處do—while循環的結束條件是( )。
A) P的值不等於12345並且n的值小於3
B) P的值等於12345並且n的值大於等於3
C) P的值不等於12345或者n的值小於3
D) P的值等於12345或者n的值大於等於3
(26) 有以下程序
main()
{ int a=15,b=21,m=0;
switch(a%3)
{ case 0:m++;break;
case 1:m++;
switch(b%2)
{ default:m++;
case 0:m++;break;
}
}
printf(「%d
」,m);
}
程序運行後的輸出結果是( )。
A) 1
B) 2
C) 3
D) 4
(27) C語言中,函數值類型的定義可以預設,此時函數值的隱含類型是( )。
A) void
B) int
C) float
D) double
(28) 若有說明:int n=2,*p=&n,*q=p;,則以下非法的賦值語句是( )。
A) p=q;
B) *p=*q;
C) n=*q;
D) p=n;
(29) 有以下程序
float fun(int x,int y)
{ return(x+y); }
main()
{ int a=2,b=5,c=8;
printf(「%3.0f
」,fun(int)fun(a+c,b),a-c));
}
程序運行後的輸出結果是( )。
A) 編譯出錯
B) 9
C) 21
D) 9.0
(30) 有以下程序
void fun(char *c,int d)
{ *c=*c+1;d=d+1;
printf(「%c,%c,」,*c,d);
}
main()
{ char a=』A』,b=』a』;
fun(&b,a); printf(「%c,%c
」,a,b);
}
程序運行後的輸出結果是( )。
A)B,a,B,a
B) a,B,a,B
C) A,b,A,b
D) b,B,A,b
(31) 以下程序中函數sort的功能是對a所指數組中的數據進行由大到小的排序
void sort(int a[],int n)
{ int i,j,t;
for(i=0;i
for(j=i+1,j
if(a[i]
}
main()
{ int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(&aa[3],5);
for(i=o;i<10;i++) print(「%d,」,aa[i]);
printf(『
」);
}
程序運行後的輸出結果是( )。
A)1,2,3,4,5,6,7,8,9,10
B) 10,9,8,7,6,5,4,3,2,1,
C) 1,2,3,8,7.6.5.4.9,10
D) 1,2,10,9,8,7,6,5,4,3
(32) 有以下程序
int f(int n)
{ if (n==1) return 1;
else return f(n-1)+1;
}
main()
{ int i,j=0;
for(i=i;i<3;i++) j+=f(i);
printf(「%d
」,j);
}
程序運行後的輸出結果是( )。
A) 4
B) 3
C) 2
D) 1
(33) 有以下程序
main()
{ char a[ ]={『a』,『b』,『c』,『d』, 『e』, 『f』, 『g』,『h』,『 』}; int i,j;
i=sizeof(a); j=strlen(a);
printf(「%d,%d」i,j);
}
程序運行後的輸出結果是( )。
A)9,9
B)8,9
C)1,8
D)9,8
(34) 以下程序中函數reverse的功能是將a所指數組中的內容進行逆置。
void reverse(int a[ ],int n)
{ int i,t;
for(i=0;i{ t=a[i]; a[i]=a[n-1-i];a[n-1-i]=t;}
}
main()
{ int b[10]={1,2,3,4,5,6,7,8,9,10}; int i,s=0;
reverse(b,8);
for(i=6;i<10;i++) s+=b[i];
printf(「%d
」,s);
}
程序運行後的輸出結果是( )。
A) 22
B) 10
C) 34
D) 30
(35) 有以下程序
main()
{ int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};
int i,s=0
for(i=0;i<4;i++) s+=aa[i][1];
printf(「%d
」,s);
}
程序運行後的輸出結果是( )。
A) 11
B) 19
C) 13
D) 20
(36) 有以下程序
#include
main()
{ char *p=「abcdeOfghjik 」;
printf(「%d
」,strlen(p));
}
程序運行後的輸出結果是( )。
A) 12
B) 15
C) 6
D) 5
(37) 程序中頭文件typel.h 的內容是:
#define N 5
#define M1 N*3
程序如下:
#define 「type1.h」
#define M2 N*2
main()
{ int i;
i=M1+M2; printf(「%d
」,i);
}
程序編譯後運行的輸出結果是:( )。
A) 10
B) 20
C) 25
D) 30
(38) 有以下程序
#include
main()
{ FILE *fp; int i=20,j=30,k,n;
fp=fopen(「d1.dat」「w」);
fprintf(fp,「%d
」,i);fprintf(fp,「%d
」j);
fclose(fp);
fp=fopen(「d1.dat」, 「r」);
fp=fscanf(fp,「%d%d」,&k,&n); printf(「%d%d
」,k,n);
fclose(fp);
}
程序運行後的輸出結果是( )。
A) 20 30
B) 20 50
C) 30 50
D) 30 20
(39) 以下敘述中錯誤的是( )。
A) 二進制文件打開後可以先讀文件的末尾,而順序文件不可以
B) 在程序結束時,應當用fclose函數關閉已打開的文件
C) 在利用fread函數從二進制文件中讀數據時,可以用數組名給數組中所有元素讀入數據
D) 不可以用FILE定義指向二進制文件的文件指針
(40) 有以下程序
#include
main(int argc,char *argv[])
{ int i,len=0;
for(i=1;iprintf(「%d
」,len);
}
程序編譯連接後生成的可執行文件是ex1.exe,若運行時輸入帶參數的命令行是:
ex1 abcd efg 10
則運行的結果是:( )。
A) 22
B) 17
C) 12
D) 9
(41) 有以下程序
int fa(int x)
{ return x*x; }
int fb(int x)
{ return x*x*x; }
int f(int (*f1)(),int (*f2)(),int x)
{ return f2(x)-f1(x); }
main()
{ int i;
i=f(fa,fb,2); printf(「%d
」,i);
}
程序運行後的輸出結果是( )。
A) -4
B) 1
C) 4
D) 8
(42) 有以下程序
int a=3;
main()
{ int s=0;
{ int a=5; s+=a++; }
s+=a++;printf(「%d
」,s);
}
程序運行後的輸出結果是( )。
A) 8
B) 10
C) 7
D) 11
(43) 有以下程序
void ss(char *s,char t)
{ while(*s)
{ if(*s==t) *s=t-『a』+』A』;
s++;
}
}
main()
{ char str1[100]=「abcddfefdbd」,c=』d』;
ss(str1,c); printf(「%s
」,str1);
}
程序運行後的輸出結果是( )。
A) ABCDDEFEDBD
B) abcDDfefDbD
C) abcAAfefAbA
D) Abcddfefdbd
(44) 有以下程序
struct STU
{ char num[10]; float score[3]; };
main()
{ struct stu s[3]={{「20021」,90,95,85},
{「20022」,95,80,75},
{「20023」,100,95,90}},*p=s;
int i; float sum=0;
for(i=0;i<3,i++)
sum=sum+p->score[i];
printf(「%6.2f
」,sum);
}
程序運行後的輸出結果是( )。
A) 260.00
B) 270.00
C) 280.00
D) 285.00
(45) 設有如下定義:
struck sk
{ int a;
float b;
}data;
int *p;
若要使P指向data中的a域,正確的賦值語句是( )。
A) p=&a;
B) p=data.a;
C) p=&data.a;
D) *p=data.a;
(46) 有以下程序
#include
struct NODE
{ int num; struct NODE *next; };
main()
{ struct NODE *p,*Q,*R;
p=(struct NODE*)malloc(sizeof(struct NODE));
q=(struct NODE*)malloc(sizeof(struct NODE));
r=(struct NODE*)malloc(sizeof(struct NODE));
p->num=10; q->num=20; r->num=30;
p->next=q;q->next=r;
printf(「%d
」,p->num+q->next->num);
}
程序運行後的輸出結果是( )。
A) 10
B) 20
C) 30
D) 40
(47) 若有以下說明和定義
typedef int *INTEGER;
INTEGER p,*q;
以下敘述正確的是( )。
A) P是int型變數
B) p是基類型為int的指針變數
C) q是基類型為int的指針變數
D) 程序中可用INTEGER代替int類型名
(48) 有以下程序
main()
{ unsigned char a,b,c;
a=0x3; b=a|0x8; c=b<<1;
printf(「%d%d
」,b,c);
}
程序運行後的輸出結果是( )。
A) –11 12
B) –6 –13
C) 12 24
D) 11 22
(49) 有以下程序
#include
main()
{ char *p,*q;
p=(char*)malloc(sizeof(char)*20); q=p;
scanf(「%s%s」,p,q); printf(「%s%s
」,p,q);
}
若從鍵盤輸入:abc def,則輸出結果是:( )。
A) def def
B) abc def
C) abc d
D) d d
(50) 以下程序中函數f的功能是將n個字元串按由大到小的順序進行排序。
#include
void f(char p[][10],int n)
{ char t[20]; int i,j;
for(i=0;ifor(j=i+1;jif(strcmp(p[i],p[j])<0)
{ strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);}
}
main()
{ char p[][10]={「abc」,「aabdfg」,「abbd」,「dcdbe」,「cd」};int i;
f(p,5); printf(「%d
」,strlen(p[0]));
}
程序運行後的輸出結果是( )。
A) 6
B) 4
C) 5
D) 3
二、填空題(每空2分,共40分)
請將答案分別寫在答題卡中序號為【1】至【20】的橫線上,答在試卷上不得分。
1、計算機軟體分為系統軟體和應用軟體,操作系統屬於 [1] 。
2、在DOS環境下,代表鍵盤和顯示器的設備文件名為 [2] 。
3、支持Internet基本服務的協議是 [3] 。
4、從Windows環境進入MS-DOS方式後,返回Windows環境的DOS命令為 [4] 。
5、某微型機的運算速度為2MIPS,則該微型機每秒執行 [5] 條指令。
6、設有定義:int n,*k=&n;以下語句將利用指針變數k讀寫變數n中的內容,請將語句補充完整。
scanf(「%d, 」 [6] );
printf(「%d
」, [7] 。);
7、以下程序運行後的輸出結果是 [8] 。
main()
{ int x=10,y=20,t=0;
if(x==y)t=x;x=y;y=t;
printf(「%d,%d
」,x,y);
}
8、以下程序運行後的輸出結果是 [9] 。
main()
{ int x=15;
while(x>10 && x<50)
{ x++;
if(x/3){x++;break;}
else continue;
}
printf(「%d
」,x);
}
9、有以下程序:
#include
main()
{ char c;
while((c=getchar( ))!=』』) putchar(--c);
}
程序運行時,如果從鍵盤輸入:Y?N?,則輸出結果為 [10] 。
10、以下程序運行後的輸出結果是 [11] 。
void fun(int x,int y)
{ x=x+y;y=x-y;x=x-y;
printf(「%d,%d,」,x,y); }
main()
{ int x=2,y=3;
fun(x,y);
printf(「%d,%d
」,x,y);
}
11、以下函數的功能是計算s=1+ + +……+ ,請填空。
double fun(int n)
{ double s=0.0,fac=1.0; int i;
for(i=1,i<=n;i++)
{ fac=fac [12] ;
s=s+fac;
}
return s;
}
12 fun函數的功能是:首先對a所指的N行N列的矩陣,找出各行中的最大的數,再求這N個最大值中的最小的那個數作為函數值返回。請填空。
#include
#define N 100
int fun(int(*a)[N])
{ int row,col,max,min;
for(row=0;row{ for(max=a[row][0],col=1;colif( [13] )max=a[row][col];
if( row==0)min=max;
else if( [14] )min=max;
}
return min;
}
13、函數sstrcmp()的功能是對兩個字元串進行比較。當s所指字元串和t所指字元串相等時,返回值為0;當s所指字元串大於t所指字元串時,返回值大於0;當s所指字元串小於t所指字元串時,返回值小於0(功能等同於庫函數strcmp())。請填空。
#include
int sstrcmp(char *s,char *t)
{ while(*s&&*t&& *s== [15] )
{ s++;t++;}
return [16] ;
}
14、下面程序的運行結果是 [17] 。
#define N 10
#define s(x) x*x
#define f(x) (x*x)
main()
{ int i1,i2;
i1=1000/s(N); i2=1000/f(N);
printf(「%d %d
」,i1,i2);
}
15、下面程序的運行結果是: [18] 。
void swap(int *a,int *b)
{ int *t;
t=a; a=b; b=t;
}
main()
{ int x=3,y=5,*p=&x,*q=&y;
swap(p,q);
printf(「%d%d
」,*p,*q);
}
16、下面程序的運行結果是: [19] 。
typedef union student
{ char name[10];
long sno;
char sex;
float score[4];
}STU;
main()
{ STU a[5];
printf(「%d
」,sizeof(a));
}
(17) 函數sstrcmp()的功能是對兩個字元串進行比較。當s 所指字元串和t所指字元相等時,返回值為0;當s所指字元串大於t所指字元串時,返回值大於0;當s所指字元串小於t所指字元串時,返回值小於0(功能等同於庫函數strcmp())。請填空。
#include
int sstrcmp(char *s,char *t)
{while(*s&&*t&&*s==【19】)
{s++;t++; }
return 【20】;
}
廣東開放大學