當前位置:首頁 » 編程軟體 » c編程答案

c編程答案

發布時間: 2023-07-04 14:56:10

A. 求這道c語言編程題的答案

部分測試樣例

B. C語言試題及答案(2)

main()

{ int k, a[10]={1,2,3,4,5};

for(k=1; k<3; k++) fun(a);

for(k=0; k<5; k++) printf("%d", a[k]);

}

上面程序的輸出結果是

A.34756

B.23445

C.35743

D.12345

(40) 請讀程序:

#include

#define SUB(X,Y) (X)*Y

main()

{ int a=3, b=4;

printf("%d", SUB(a++, b++));

}

上面程序的輸出結果是

A.12

B.15

C.16

D.20(41) 請讀程序:

#include

main()

{ int mun=0;

while(num<=2)

{ num++; printf("%d ",num);}

}

上面程序的輸出結果是

A.1

B.1

C.1

D.1

2 2 2

3 3

4

(42) 請讀程序:

#include

main()

{ float x,y;

scan("%f",&x);

if(x<0.0) y=0.0

else if((x<5.0)&&(x!=2.0))

y=1.0/(x+2.0);

else if (x<10.0) y=1.0/x;

else y=10.0;

printf("%f ",y);

}

若運行時從鍵盤上輸入2.0(表示回車),則上面程序的輸出結果是

A.0.000000

B.0.250000

C.0.500000

D.1.000000

(43) 請讀程序:

#include

main()

{ int x=1, y=0, a=0, b=0;

switch(x)

{ case 1:

switch(y)

{ case 0: a++;break;

case 1: b++;break;

}

case 2:

a++; b++; break;

}

printf("a=%d, b=%d ",a,

B.;

}

上面程序的輸出結果是

A.a=2, b=1

B.a=1, b=1

C.a=1, b=0

D.a=2, b=2

(44) 若有下面的程序片段:

int a[12]={0}, *p[3], **pp, i;

for(i=0; i<3; i++)

p[i]=&a[i*4];

pp=p;

則對數組元素的錯誤引用是

A.pp[0][1]

B.a[10]

C.p[3][1]

D.*(*(p+2)+2)

(45) 請讀程序:

#include

#include

main()

{ float x,y,z;

scan("%f%f",&x,&y);

z=x/y;

while(1)

{ if(fabs(z)>1.0)

{ x=y; y=z; z=x/y;

}

else break

}

printf("%f ",y);

}

若運行時從鍵盤上輸入3.6 2.4(表示回車),則輸出的結果是

A.1.500000

B.1.600000

C.2.000000

D.2.400000

(46) 請讀程序:

#include

f(in b[], int n)

{ int i, r;

r=1;

for(i=0; i<=n; i++) r=r*b[i];

return r;

}

main()

{ int x, a[]={ 2,3,4,5,6,7,8,9};

x=f(a, 3);

printf("%d ",x);

}

上面程序的輸出結果是

A.720

B.120

C.24

D.6

(47) 請讀程序:

#include

#include

void fun( char *s)

{ char a[10];

strcpy( a, "STRING");

s=a;

}

main()

{ char *p;

fun(p);

x=f(a, 3);

printf("%s ",p);

}

上面程序的輸出結果是(└┘表示空格)

A.STRING└┘└┘└┘└┘

B.STRING

C.STRING└┘└┘└┘

D.不確定的值

(48) 若已建立下面的鏈表結構,指針p、s分別指向圖中所示的結點,則不能將s所指的結點插入到鏈表末尾的語句組是

A.s->next=NULL; p=p->next; p->next=s;

B.p=p->next; s->next=p->next; p->next=s;

C.p=p->next; s->next=p; p->next=s;

D.p=(*p).next; (*s).next=(*p).next; (*p).next=s;

(49) 請讀程序:

#include

void fun(float *pl, float *p2, float *s)

{ s=( float * )calloc( 1, sizeof(float));

*s=*p1+ *(p2++);

}

main()

{ float a[2]={1.1, 2.2}, b[2]={10.0, 20.0}, *s=a;

fun(a, b, s)

printf("%f ",*s);

}

上面程序的輸出結果是

A.11.100000

B.12.100000

C.21.100000

D.1.100000

(50) 請讀程序:

#include

#include

void fun( char *w, int m)

{ char s, *p1, *p2;

p1=w; p2=w+m-1;

while (p1{ s=*p1++; *p1=*p2--; *p2=s;}

}

main()

{ char a[]="ABCDEFG";

fun( a, strlen(a));

puts(a);

}

上面程序的輸出結果是

A.GFEDCBA

B.AGADAGA

C.AGAAGAG

D.GAGGAGA

二、填空題(每空2分,共40分)

請將每空的正確答案寫在答題卡上【1】-【20】序號後的橫線上,答在試卷上不得分。

(1) DOS命令分為內部命令與外部命令,XCOPY命令是 【1】 命令

(2) 為了列出當前盤當前目錄中所有第三個字元為C的文件名的有關信息,應該用命令 【2】 。

(3) 設當前盤為A盤,當前目錄為XY,A盤上的一個文件QR.C在當前目錄下的子目錄W中。現已將A盤的當前目錄改為DXY,當前盤改為C盤,如需指定A盤上該文件應寫成 【3】 。

(4) 用十六進制給存儲器中的位元組地址進行編號,其地址編號是從0000到FFFF,則該存儲器的容量是【4】KB。

(5) 設有兩個八位二進制數00010101與01000111相加,其結果的十進製表示為 【5】 。

(6) 數學式子 寫成C語言表達式是 【6】 。

(7) 下面程序的輸出結果是 【7】 。

#include

main()

{ static char b[]="Goodbye";

char *chp=&b[7];

while( --chp >=&b[0]) putchar( *chp);

putchar(’ ’);

}

(8) 下面程序的輸出結果是 【8】 。

#include

void as( int x, int y, int *cp, int *dp)

{ *cp=x+y;

*dp=x-y;

}

main()

{ int a=4, b=3, c, d;

as( a, b, &c, &d);

printf( ’%d %d ", c, d);

}

(9) 請讀程序:

#include

main( int argc, char *argv[])

{ int i;

printf( ’%d ", argc);

for( i=0; i<=argc+1; i++) printf( "%s ", argv[i]);

printf(" ");

}

若上面的程序編譯、連接後生成可執行文件ABC.EXE,則輸入以下命令行

abc file1 file2(表示回車)

程序執行後的輸出結果是 【9】 。

(10) 條件“20(11) 設二進制數a是00101101,若想通過異或運算a^b使a的高4位取反,低4位不變,則二進制數b應是 【11】 。

(12) 若有以下說明和定義語句,則變數w在內存中所佔的位元組數是 【12】 。

union aa

{ float x, y;

char c[6];

};

struct st { union aa v; float w[5]; double ave; } w;

(13) 下面程序的輸出結果是 【13】 。

#include

#define N 5

fun( char *s, char a, int n)

{ int j;

*s=a; j=n;

while( ereturn j;

}

main()

{ char s[N+1];

int k, p;

for( k=1; k<=N; k++)

s[k]=’A’+k+1;

printf( "%d ", fun(s, ’E’, N));

}(14) 下面程序的輸出結果是 【14】 。

#include

void fun( char *a1, char *a2, int n)

{ int k;

for( k=0; ka2[k]=( a1[k]-’A’-3+26)&+’A’;

a2[n]=’’;

}

main()

{ char s1[5]="ABCD", s2[5];

fun( s1, s2, 4);

puts( s2);

}

(15) 下面的findmax函數返回數組s中最大元素的下標,數組中元素的個數由t傳入,請填空。

findmax( int s[], int t)

{ int k, p;

for( p=0, k=p; pif( s[p]>s[k]) 【15】 。

return k;

}

(16) 下面程序的輸出結果是 【16】 。

#include

fun( int x)

{ int p;

if( x==0||x==1) return(3);

p=x-fun( x-2);

return p;

}

main()

{ printf( "%d ", fun(9));}

(17) 下面程序的輸出結果是 【17】 。

#include

funa( int a, int b)

{ return a+b;}

funb( int a, int b)

{ return a-b;}

sub( int (*t)(), int x, int y)

{ return((*t)( x,y));}

main()

{ int x, (*p)();

p=funa;

x=sub(p,9,3);

x+=sub(funb, 8, 3);

printf("%d ", x);

}

(18) 下面程序的輸出結果是 【18】 。

#include

main()

{ char *p[]={ "BOOL", "OPK", "H", "SP"};

int i;

for(i=3; i>=0; i--,i--) printf( "%c", *p[i]);

printf(" ");

}

(19) 為了建立如圖所示的存儲結構(即每個結點含兩個域,data是數據域,next是向結點的指針域),請填空。

data next

struct link { char data; 【19】 } node;

(20) 下面的程序用來統計文件中字元的個數,請填空。

#include

main()

{ FILE *fp;

long num=0;

if(( fp=fopen("fname.dat","r"))==NULL)

{ printf( "Can’t open file! "); exit(0);}

while 【20】

{ fgetc(fp); num++;}

printf("num=%d ", num);

fclose(fp);

}

參考答案

一`選擇題((1)~(40)題每題1分,(41)~(50)題每題2分,共60分)

(1)C (2)A (3)B (4)D (5)D (6)A (7)C (8)B (9)D (10)C

(11)B (12)D (13)A (14)C (15)B (16)A (17)B (18)A (19)C (20)C

(21)D (22)B (23)B (24)A (25)C (26)D (27)D (28)B (29)C (30)A

(31)B (32)B (33)D (34)C (35)A (36)C (37)A (38)B (39)C (40)A

(41)C (42)C (43)A (44)C (45)B (46)B (47)D (48)C (49)D (50)C

二` 填空題(每空2分,共40分)

(第(2)`(3)空允許小寫或大小寫混合使用,其它空均須與答案一樣)

(1) 外部

(2) DIR ?? C*.*

(3) A:XYWQR.C

(4) 64

(5) 92

(6) pow(sin(x),2) * (a+b)/(a-b) 或 sit(x) * sit(x) * (a+b)/(a-b)

(7) eybdooG

(8) 7 1

(9) 3 abc.exe file1 file2 (注:兩個答案,每個1分)

(10) ((20 (11) 11110000

(12) 34

(13) 3

(14) XYZA

(15) k=p

(16) 7

(17) 17

(18) SO

(19) struct link *next

(20) (!feof(fp))或(feof(fp)==0)

C. C語言選擇題及答案

選擇題

1.在深度為5的滿二叉樹葉中,葉子結點的個數為( )。

A.32

B.31

C.16

D.15

2.軟體生命周期中,花費最多的階段是( )。

A.詳細設計

B.軟體編碼

C.軟體測試

D.軟體維護

3.視圖設計一般有3種設計次序,下列不屬於視圖設計次序的是( )。

A.自頂而下

B.由內向外

C.由外向內

D.自底向上

4.下列數據結構中,能用二分法進行查找的是( )。

A.順序存儲的有序線性表

B.結性鏈表

C.二叉鏈表

D.有序線性鏈表

5.以下敘述中錯誤的是( )。

A.對於double類型數組,不可以直接用數組名對數組進行整體輸入或輸出

B.數組名代表的是數組所佔存儲區的首地址,其值不可改變

C.當程序執行中,數組元素的下標超出所定義的下標范圍時,系統將給出“下標越界”的出錯信息

D.可以通過賦初值的方式確定數組元素的個數

6.以下只有在使用時才為該類型變數分配內存的存儲類型說明是( )。

A.auto和static

B.auto和register

C.register和static

D.extern和register

7.下列可作為C語言賦值的語句的是( )。

A.x一3,y=5

B.a=b=6

C.i--;

D.a,c

8.若整型變數a、b、c、d中的值依次為2、2、3、4,則條件表達式aA.1

B.2

C.3

D.4

9.下列敘述中錯誤的是( )。

A.線性表是由n個元素組成的一個有限序列

B.線性表是一種線性結構

C.線性表的所有結點有且僅有一個前件和後件

D.線性表可以是空表

10.以下程序執行後sum的值是( )。

main()

{ int i,sum;

for(i=1;i<6;i++)sum+=i:

printf("1%d ",sum):

}

A.15

B.14

C.不確定

D.0

11.設j為Int型變數,則下面for循環語句的執行結果是( )。

for(j=10;j>3;j--)

{ if(j%3)j--;

--j;--j;

printf("%d",j);

}

A.6 3

B.7 4

C.6 2

D.7 3

12.表示關系X<=Y<=Z的C語言表達式為( )。

A.(X<=Y)&&(Y<=Z)

B.(X<=Y)AND(Y<=Z)

C.(X<=Y<=Z)

D.(X<一Y)&(Y<一Z)

13.設有如下定義:

int arr[]={6,7,8,9,10);

int*ptr:

ptr=arr;

*(ptr2)=2;

printf("%d,%d ",*ptr,*(ptr2)):

則下列程序段的輸出結果為( )。

A.8,10

B.6,8

C.7,9

D.6,2

14.設有定義語句:

int x[-6]={2,4,6,8,5,7),*p=X,i;

要求依次輸出X數組6個元素中的值,不能完成此操作的語句是( )。

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)++);

15.數字字元0的ASCII值為48,運行以下程序的輸出結果是( )。

main()

( char a=’1’,b=’2’;

printf("%C,",b++);printf("%d ",b—a);}

A.3,2

B.50,2

C.2,2

D.2,50

16.設有如下定義:

int(*ptr)();

則以下敘述中正確的是( )。

A.ptr是指向一維組數的指針變數

B.ptr是指向int型數據的指針變數

C.ptr是指向函數的指針,該函數返回一個int型數據

D.ptr是一個函數名,該函數的返回值是指int型數據的指針

17.設有定義的語句:“char c1=92,c2=92;”,則以下表達式中的值為零的是( )。

A.c1^c2

B.c1&c2

C.~c2

D.c1 | c2

18.以下程序的輸出結果是( )。

void fun(int*a,int i,int i)

{int t;

if(i { t=a[i[;a[i]=a[j];a[j]一t;

i++;j--;

fun(a,i,j);

}

}

main()

{ int K[]={2,6,1,8},i;

fun(x,0,3);

for(i=0;i<1;i++)printf("%2d",x[i]);

printf(" ");

}

A.1,2,6,8

B.8,6,2,1

C.8,1,6,2

D.8,6,1,2

19.有以下程序:

main()

{int i,j;

for(j=10;j<11;j++)

{ for(i=9;i if(!(j%i))break;

if(i==j-1)

printf("%d",j);

}

}

輸出結果是( )。

A.11

B.10

C.9

D.10 11

11.設j為Int型變數,則下面for循環語句的執行結果是( )。

for(j=10;j>3;j--)

{ if(j%3)j--;

--j;--j;

printf("%d",j);

}

A.6 3

B.7 4

C.6 2

D.7 3

12.表示關系X<=Y<=Z的C語言表達式為( )。

A.(X<=Y)&&(Y<=Z)

B.(X<=Y)AND(Y<=Z)

C.(X<=Y<=Z)

D.(X<一Y)&(Y<一Z)

13.設有如下定義:

int arr[]={6,7,8,9,10);

int*ptr:

ptr=arr;

*(ptr2)=2;

printf("%d,%d ",*ptr,*(ptr2)):

則下列程序段的輸出結果為( )。

A.8,10

B.6,8

C.7,9

D.6,2

14.設有定義語句:

int x[-6]={2,4,6,8,5,7),*p=X,i;

要求依次輸出X數組6個元素中的值,不能完成此操作的語句是( )。

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)++);

15.數字字元0的ASCII值為48,運行以下程序的輸出結果是( )。

main()

( char a=’1’,b=’2’;

printf("%C,",b++);printf("%d ",b—a);}

A.3,2

B.50,2

C.2,2

D.2,50

16.設有如下定義:

int(*ptr)();

則以下敘述中正確的是( )。

A.ptr是指向一維組數的指針變數

B.ptr是指向int型數據的指針變數

C.ptr是指向函數的指針,該函數返回一個int型數據

D.ptr是一個函數名,該函數的返回值是指int型數據的指針

17.設有定義的語句:“char c1=92,c2=92;”,則以下表達式中的值為零的是( )。

A.c1^c2

B.c1&c2

C.~c2

D.c1 | c2

18.以下程序的輸出結果是( )。

void fun(int*a,int i,int i)

{int t;

if(i { t=a[i[;a[i]=a[j];a[j]一t;

i++;j--;

fun(a,i,j);

}

}

main()

{ int K[]={2,6,1,8},i;

fun(x,0,3);

for(i=0;i<1;i++)printf("%2d",x[i]);

printf(" ");

}

A.1,2,6,8

B.8,6,2,1

C.8,1,6,2

D.8,6,1,2

19.有以下程序:

main()

{int i,j;

for(j=10;j<11;j++)

{ for(i=9;i if(!(j%i))break;

if(i==j-1)

printf("%d",j);

}

}

輸出結果是( )。

A.11

B.10

C.9

D.10 11

20.有以下程序.

#include

main()

{ char c1,c2,c3,c4,c5,c6;

scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

c5=getchar(); c6=getchar();

putchar(c1);putchar(c2);

printf("%c%c ",c5,c6);

}

程序運行後,若從鍵盤輸入(從第l列開始)

123<回車>

45678<回車>

則輸出結果是( )。

A.1267

B.1256

C.1278

D.1245

D. C語言編程,急求答案。。。。

第一個

#include<stdio.h>
#include<math.h>
doublecal(doublee)
{
intc=1;
doubleret=0;
doublecur=1;
doublet=1;
while(cur>e)
{
ret+=cur;
c++;
t*=c;
cur=1.0/c;
}
returnret;
}

intmain()
{
intn,i;
doublee;
printf("inputn:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
e=pow(10,-i);
printf("e=%lgresult=%lg ",e,cal(e));
}
return0;
}

第二個

#include<stdio.h>
intcount(char*s,charc)
{
intret=0;
inti;
for(i=0;s[i];i++)
if(s[i]==c)ret++;

returnret;
}

voiddelete(char*s,charc)
{
inti,j;
for(i=j=0;s[i];i++)
if(s[i]!=c)s[j++]=s[i];
s[j]=0;
}

intmain()
{
charstr[1024];
charc;
printf("inputstr:");
gets(str);
printf("inputchar:");
c=getchar();
printf("count=%d ",count(str,c));
delete(str,c);
printf("afterdelete:%s ",str);

return0;
}

供參考 望採納

熱點內容
播放這個wifi密碼是多少 發布:2025-02-07 22:34:54 瀏覽:99
視頻存儲時間長了有雪花 發布:2025-02-07 22:24:34 瀏覽:568
哈佛f7x怎麼區分配置 發布:2025-02-07 22:22:34 瀏覽:771
廣州python培訓 發布:2025-02-07 22:22:26 瀏覽:199
陸金所的交易密碼是什麼 發布:2025-02-07 22:19:25 瀏覽:320
如何刪除平板儲存密碼 發布:2025-02-07 22:10:29 瀏覽:747
php微信授權登錄 發布:2025-02-07 22:10:27 瀏覽:378
怎樣編程時鍾 發布:2025-02-07 21:59:38 瀏覽:562
誇克編程 發布:2025-02-07 21:43:43 瀏覽:530
電源450適合哪些配置 發布:2025-02-07 21:25:24 瀏覽:433