當前位置:首頁 » 編程語言 » c語言操作題題庫

c語言操作題題庫

發布時間: 2024-01-08 01:00:30

c語言題庫,求發一份

單選題
1. 以下敘述中正確的是(1)。
A.若e1、e2為變數,e為表達式,則
e1=e2=e使得e1、e2都具有表達式e的值 。


B.程序中不能定義與庫函數名同名的變數。
C.一個C源程序可放在多個文件中,但
一個函數不能跨放在兩個不同的文件中。
D.C語言編譯系統以函數為單位編譯源程序。

2. 若a,b,c都是實型變數,則下列語句中除 (2) 之外,都可能得不到正確的計算結果。
A.if(b*b-4*a*c==0) x1=x2=-b/(2*a);
else x1=(-b+sqrt(b*b-4*a*c))/(2*a), x2=(-b-sqrt(b*b-4*a*c))/(2*a);

B.b=2.0e38+1.0-2.0e38;
C.a=456*768/2;
D.double define=1.0;
3. 以下正確的常量是(3 )。
A.『077』 B.『\0x89』 C.3.14u D.『\012』
4. 若已有聲明「float x= -1234.5678; int m,n=4;」則執行「m=printf(「\n%8.3f\n」,x)/n;」語句後,
變數m的值是 (4) 。
A. 2 B. 3 C. 4 D. 5
5. 若已有聲明「int x1; float x2; long x3; char x4;」,且以下選項均出現在switch語句中,其中正確
的是 (5) 。
A. case 1.1: scanf("%d",&x1);break;
B. case 1+2: scanf("%f",&x2); break;
C. case 'x':
case 'y'-1: scanf("%ld",&x3); break;
D. case x4: scanf("%c",&x4); break;
6. 33.以下表達式中,能夠作為「if(e) 語句」中判斷條件表達式e 的是 (6) 。

A. x==++(x+1) B. x+=++x||x++ C. x+1=z D. x%2.0!=0
7. 以下局部變數聲明中,正確的是 (7) 。
A.int x=0, void=1; B.int x=1,y=2x;
C.int x=2,y=sqrt(x); D.int x=sqrt(y),y=4;
8. 在以下語句中,正確的是 (8) 。
A.if(a>b)m=a;n=b;else m=b;n=a;
B.if(a>b){m=a;n=b;else m=b;n=a;}
C.if(a>b)m=a,n=b;else m=b,n=a;
D.if(a>b){m=a;n=b;}else(a<=b){m=b;n=a;}
9.24.已知有聲明:「char c=『1』 ; int x=300 ; float t=35000 ; double d=3.1234567e10 ;」,則以下表達式
求值時除 (9 ) 外,其結果都可能是不準確的。
A.x=t/c B.t=d/x C.t=d/1e5f D. t=x+c
10.若有聲明「int i,k=1; unsigned j;」,則下列語句執行時會出現無限循環的語句
是 (10) 。

A.for(j=15;j>0;j-=2) k++;

B.for(j=0;j<15;j+=2) k++;

C.for(i=0;i<15;i+=2) k++;

D.for(i=15;i>0;i-=2) k++;

11.已有聲明「int x=2,y=1,z=0;」,以下表達式的值不為0的是 (11) 。
A. x==(x=0,y=1,z=2)
B. z>y>x
C. x>y==1
D. x>(y=2)

12.若e1、e2和e3是表達式,以下選項中與語句while(e1){e2,e3;}功能等價的語句是 (12 ) 。
A. for( ;e1;e3)e2; B. for( ;e1;e2)e3; C. for(e1;e2;e3); D. for(e1; e2, e3; );
13.已有聲明「int x=3;」,以下選項中與「x+=x =x+1」功能不等價的表達式是 (13 ) 。
A.x=x+(x=xx+1) B.x=x+(x=x(x+1)) C.x=x+(x=xx1) D.x=x(x+1), x=x+x
14.若已有聲明「int a=2; 」,則執行語句「printf("%d", a, a+1 );」後的輸出結果是 (14) 。
A.語法錯 B. 2,3 C. 2 D. 3
15.語句「if (!n) n++;」中的「!n」等價於如下 (15) 條件的判定。

A.n==0 B.n!=0 C.n>0 D.n<0
16.若已有聲明「int a=1; 」,則以下表達式中錯誤的是 (16 ) 。
A.-a++ B.+a-- C.--a D.++-a
17.下列 (17) C語言表達式能正確表達數學計算式1÷× 2xy。
A. 1/sqrt(2*3.14)*2*pow(x,y) B.1.0/sqrt(2)*2*x**y
C. 1.0/sqrt(6.28)*2x^y D.1/6.28^0.5*2*pow(x,y)
18. 已有聲明「int a=3,b=3,c=2;」,以下表達式中值為0的是 (18) 。
A. !a&&!b&&c B. !a || !b || c C. a==b &&b>=c D. a>=b &&b>c
19.
36.若有: int w=1 , x=2 , y=3 , z=4; 則表達式 w>x?x--:y<z?y--:++z 的值為 (19 ) 。

A. 4 B. 3 C. 2 D. 1
20. 已知某程序中有以下片斷:
#define p 2.5
main( )
{ float x=p;
}
則main函數中標識符p代表一個 (20) 。
A. float型變數 B. double 型變數 C. float型常量D.double 型常量
20.


填空題
1.21.設有如下程序段:
int a=2, b, c=5 ;
scanf( 「%d」 , &b) ;
b = c-- || scanf (「%d」 , &c ) && a++;
執行該程序段時,若從鍵盤上輸入的數據是 4ƀ3 (ƀ代表空格鍵) , 則變數c 的值為 (21) 。
2. signed和unsigned只能用於聲明int型變數和 (22) 型變數。
3.代數式「||」的C語言表達式是 (23) 。
4.已有聲明「int a=-13,n=7;」,表達式「a%=n%=4」求值後變數a的值為 (24) 。
5.已有聲明「unsigned int a=30; 」 ,那麼 –a 的值為___(25)____。

6.
如下程序執行後的輸出是____(26)____。
#include<stdio.h>
main ( )
{
int i=1,m=0;
switch ( i )
{
case 1 :
case 2 : m++;
case 3 : m++;
}
printf ( 「%d」 ,m);
}
7.C語言的三個邏輯運算符(!、&&、||)中,優先順序高於算術運算符的是
(27) 。
8.已知sizeof(int)的值為2,執行如下程序後輸出結果為 (28) 。
main()
{ int a,b;
a=65536;
b=32767+1;
printf("%d %d\n",a,b);
}
9.若有聲明「int a=3,b=0,c=5;」, 則表達式 !a+b+c-1&&b+c/2 的值是 (29) 。
10.若有聲明「int x=1,y=2;」 ,則表達式 ++x, x+y++ 的值是 (30) 。

三、閱讀程序題
1.在PC機的TC中執行以下程序後的輸出是: (31) 。

main()
{
unsigned x=0x7f39;

int y;
char c;

c=x;
x+=0307;
y=x;
printf(「%d,%x,%c」,x,y,c);
}
2.以下程序運行後的輸出結果是 (32) 。
#include<stdio.h>
main ( )
{ int x=30, y=45;
while(x!=y)
if(x>y)x-=y;
else y-=x;
printf("%d", x);
}
3.
以下程序運行後輸出結果的第一行是 (33) ,第二行是 (34) 。
#include<stdio.h>
#include<math.h>
void main()
{ int a=0x65,b,c,count=0;
b=a;
while(b>0)
{ b=b/8;
count++;
}
printf("%d\n",count);
while(count>0)
{ c=pow(8,count-1);
printf("%d",a/c);
a=a%c;
count--;
}
}
4.以下程序運行時輸出結果是 (35) 。
#include <stdio.h>
main()
{
int i,x=3,y=5;
for(i=0;i<3;i++)
switch(y%x)
{
case 0: printf("%d",y);
case 1: printf("%d",y--);break;
case 2: printf("%d",--y);break;
}
}

5.以下程序執行後,輸出結果的第一行是 (36) ,第二行是 _(37)______。
#define N 100
main()
{ int i=0,sum=0;
do
{ if(i==(i/2)*2)
continue;
sum++;
if(sum>3)
break;
}while(++i<N);
printf("%d \n %d", sum,i);
}

四、完善程序題

1.下列程序的功能是按從鍵盤上輸入的整數m,判斷2m -1是否為素數,若為素數再求2m -1的反序數。例如:m為17,217 –1(131071)是素數,其反序數是170131。
#include <stdio.h>
(38)
main()
{
int m,j;
long q,k1,k2=0,k3;
scanf("%d",&m);
k3=k1=pow(2,m)-1;
q=sqrt(k1);
for(j=2;j<=q;j++)
if( (39) ) break;
if(j>q)
{ while(k3>0)
{ k2=k2*10+ (40) ;
k3/=10;
}
printf("m=%d\npow(2,m)-1=%ld is a prime.\nreverse order %ld\n",m,k1,k2);
}
else
printf("m=%d isn't a prime.\n",m);
}
2. 以下程序找到並輸出所有滿足給定條件的四位十進製表示的正整數:該數是某個數的平方、該數的後二位是25、組成該整數的各位數字中有兩位是2。例如:1225是滿足所給條件的四位正整數(352=1225)。
#include<stdio.h>
#include<math.h>
main()
{ long i,j,s,d=0;
for(i=1000;i<10000;i++)
{ (41) ;
j= (42) ;
if(i==j*j && i%100==25)
{ s=i;
while(s>0)
{ if( (43) )d++;
s=s/10;
}
if(d==2) printf("\n %d",i);
}
}
}
3..下列程序計算下列數學函數展開式的近似值,累加運算在最後一項的絕對值小於10-6時停止。
程序運行時從鍵盤上分別三個實數-1.0、0.5、1.0,作為x的值。
#include <stdio.h>
#include <math.h>
#define EPS 1.0e-6
main()
{ double x,n,tn,ft,sn,xn;
int i;
for(i=0;i<3;i++)
{ (44) ;
ft=1.0;
scanf("%lf",&x);
sn=xn=x;
do{
xn=xn*x*x;
ft=ft*(2*n-3)/(2*n-2);
tn=ft*xn/ (45) ;
sn=sn+tn;
n=n+1;
}while( (46) );
printf("f(%lf)=%0.6lf\n",x,sn);
}
}

《C語言程序設計》試卷答題紙
(本試卷滿分100分)

系科_____________學號_____________姓名_____________成績____________

單項選擇題得分 填空題得分 閱讀程序題得分 完善程序題得分 總分

一 、單項選擇題

(1) (2) (3) (4) (5)
(6) (7) (8) (9) (10)
(11) (12) (13) (14) (15)
(16) (17) (18) (19) (20)

二、填空題

(21) (22)
(23) (24)
(25) (26)
(27) (28)
(29) (30)

三、閱讀程序題

(31) (32)
(33) (34)
(35) (36)
(37

四、完善程序題

(38) (39)
(40) (41)
(42) (43)
(44) (45)
(46)
《C語言程序設計》試卷參考答案
(本試卷滿分100分)

一 、單項選擇題

(1)C (2)D (3)D (4)A (5) B
(6)B (7)C (8)C (9)D (10)A
(11)C (12)A (13)A (14)C (15)A
(16)D (17)A (18)A (19)B (20)D

二、填空題

(21) 4 (22) char
(23) fabs(exp(sqrt(1+sin(x)))) (24) -1
(25) 65506 (26) 2
(27) ! (28) 0 -32768
(29) 1 (30) 4

三、閱讀程序題

(31) -32768, 8000, 9 (32) 15
(33) 3 (34) 145
(35) 4433 (36) 4
(37) 7

四、完善程序題

(38) #include <math.h> (39) k1%j==0
(40) k3%10 (41) d=0
(42) sqrt(i) (43) s%10==2
(44) n=2.0 (45) (2*n-1)
(46) fabs(tn)>EPS

⑵ 大一c語言題,在線等

/* Note:Your choice is C IDE */

#include "stdio.h"

struct xinxi

{

char shuming[20];

char zuozhe[20];

char nianyue[20];

int kucun;

};

void main()

{

int i,j;//循環變數

struct xinxi s[3],temp;

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

{

printf("請輸入第%d本書的信息: ",i+1);

printf(" 請輸入書名:");

scanf("%s",s[i].shuming);

printf(" 請輸入作者:");

scanf("%s",s[i].zuozhe);

fflush(stdin);

printf(" 請輸入出版年月:");

gets(s[i].nianyue);

printf(" 請輸入庫存量:");

scanf("%d",&s[i].kucun);

}

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

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

if(s[j].kucun<s[j+1].kucun)

{

temp=s[j];

s[j]=s[j+1];

s[j+1]=temp;

}

printf("按照庫存量降序排序並輸出為: ");

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

{

printf("第%d本書的信息: ",i+1);

printf(" 書名:%s ",s[i].shuming);

printf(" 作者:%s ",s[i].zuozhe);

printf(" 出版年月:%s ",s[i].nianyue);

printf(" 庫存量:%d ",s[i].kucun);

}

}

⑶ c語言計算機二級考試選擇題如圖

全國計算機二級考試試題題庫(附答案)
下列各題 A) 、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項在答題
卡相應位置上塗黑,答在試卷上不得分。
(1) 應用軟體是指
A) 所有能夠使用的軟體 B) 能被各應用單位共同使用的某種軟體
C) 所有微機上都應使用的基本軟體 D) 專門為某一應用目的而編制的軟體
(2) 下列述敘中錯誤的是
A) 計算機要經常使用不要長期閑置不用
B) 為了延長計算機的壽命,應避免頻繁開關計算機
C) 在計算機附近應避免磁場干擾
D) 計算機用幾小時後,應關機一會兒再用
(3) 下列字元中,ASCII碼值最小的是
A) A B) a C) Z D) x
(4) 用晶體管作為電子器件製成的計算機屬於
A) 第一代 B) 第二代 C) 第三代 D) 第四代
(5) 下列各不同進制的四個無符號數中,最小的數是
A) ()2 B) (37)8 C) (75)10 D) (2A)16
(6) 二進制數轉換成十六進制數是
A) B) C) D)
(7) 下列各無符號十進制數中,能用八位二進製表示的是
A) 296 B) 333 C) 256 D) 199
(8) 計算機的軟體系統可分類為
A) 程序與數據 B) 系統軟體與應用軟體
D) 操作系統與語言處理程序 D) 程序、數據與文檔
(9) 486機中的CPU同時能處理的二進制位數為
A) 8 B) 16 C) 32 D) 64
(10) 在使用計算機的過程中,需要重新啟動DOS,則要
A) 按Ctrl+Break鍵 B) 按^C鍵 C) 按Ctrl+Alt+Del鍵 D) 按^H鍵
(11) 現要從軟盤啟動DOS(軟盤中已存有DOS系統),設有如下一些操作:①打開計算機
電源;②將該軟盤插入A驅動器;③關好A驅動器門。則冷啟動的操作順序應為
A) ①→②→③ B) ③→②→① C) ②→①→③ D) ②→③→①
(12) 設當前盤中某一文件路徑為\A\C\B\,當前目錄為\A。下列命令中錯誤的是
A) CD.. B) RD \A\C\B
C) TYPE \A\C\B\ D) TYPE C\B\
(13) 設當前盤中的根目錄下有一子目錄AB,在子目錄AB下有一文件。現要查看文件
的內容,應使用命令
A) TYPE \AB B) TYPE \AB\
C) TYPE \ D) DIR \AB\
(14) 自動批處理文件必須放在
A) C盤根目錄中 B) A盤根目錄中
C) 啟動盤的任一個目錄中 D) 啟動盤的根目錄中
(15) 設當前盤當前目錄為C:\USER\XY\P,且當前盤當前目錄為空,則下列命令中能正
確執行的是
A) RD C:\USER\XY\P B) RD USER\XY\P
C) MD \USER\XY\P\USER D) MD \USER\XY\P\X\Y
(16) 下列DOS命令中,合法的是
A) DISKCOMP B) TYPE >>
C) COMP A: B: D) COMP A: A:
(17) 設當前盤為C盤,所用的所有軟盤已格式化,且容量相同,則下列DOS命令中錯
誤的是
A) DISKCOPY A: A: B) COPY A:*.* C) COPY *.* D) COPY A:*.* C:
(18) 下列DOS命令中錯誤的是
A) TYPE >PRN B) TYPE PRN
C) COPY *.TXT PRN D) COPY CON PRN
(19) 下列四組DOS命令中,互相等價的一組是
A) COPY A:*.* B:與DISKCOPY A: B:
B) COPY +與TYPE >>
C) COPY + 與COPY +
D) TYPE *.FOR>CON與COPY *.FOR CON
(20) 設C盤目錄結構如下:
且C盤根目錄下文件的內容為
CD FORTRAN
CD \TC
如果在A驅動器中插入一張根目錄中只有擴展名為.C的若干文件(即A盤中無DOS系統
文件)的軟碟片,則由C盤啟動DOS系統後,第一次鍵入下列命令中,正確的是
A) COPY A:\*.C B) COPY A:\*.C TC
C) COPY A:\*.C FORTRAN D) CD USER
(21) C語言提供的合法的數據類型關鍵字是
A) Double B) short C) integer D) Char
(22) 在C語言中,合法的長整型常數是
A) 0L B) 4962710 C) D)
(23) 表達式:10!=9的值是
A) true B) 非零值 C) 0 D) 1
(24) 合法的C語言中,合法的長整型常數是
A) '\t' B) "A" C) 65 D) A
(25) 若有說明和語句:
int a=5;
a++;
此處表達式a++的值是
A) 7 B) 6 C) 5 D) 4
(26) 在下列選項中,不正確的賦值語句是
A) ++t; B) n1=(n2=(n3=0)); C) k=i==j; D) a=b+c=1;
(27) 若有說明:int i,j=7, *p=&i;,則與i=j;等價的語句是
A) I= *P; B) *P=*&J; C) i=&j; D) i=* *p;
(28) 不能把字元串:Hello!賦給數組b的語句是
A) char b[10]={'H','e','l','l','o','!'};
B) char b[10];b="Hello!";
C) char b[10];strcpy(b,"Hello!");
D) char b[10]="Hello!";
(29) 若有以下說明:
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};
char c='a',d,g;
則數值為4的表達式是
A)a[g-c] B)a[4] C)a['d'-'c'] D)a['d'-c]
(30) 若有以下說明:
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
則數值為6的表達式是
A) *p+6 B) *(p+6) C) *p+=5 D) p+5
(31) 若有以下說明:
int w[3][4]o={{0,1},{2,4},{5,8}};
int(*p)[4]=w;
則數值為4的表達式是
A) *w[1]+1 B) p++,*(p+1) C) w[2][2] D) p[1][1]
(32) 若程序中有下面的說明和定義
struct abc
{int x;char y;}
struct abc s1,s2;
則會發生的情況是
A) 編譯進錯 B) 程序將順利編譯`連接`執行
C) 能順利通過編譯`連接`但不能執行 D) 能順利通過編譯`但連接出錯
(33) 能正確表示a≥10或a≤0的關系表達式是
A)a>=10 or a<=0 B)a>=10│a<=0
C)a>=10││a<=0 D)a>=10 ││a<=0
(34) 下面程序的輸出是
main()
{ int x=3,y=6,a=0;
while(x++!=(y+=o1))
{ a+o=1;
if(y
#include
main()
{ char ss[10]="12345";
strcat(ss,"6789");
gets(ss);printf("%s\n",ss);
}
A) ABC B) ABC9 C) 123456ABC D) ABC456789
(35) 下面程序的輸出是
main()
{ char *a="";
int v1=0,v2=0,v3=0,v4=0,k;
for(k=0;s[k];k++)
switch(s[k])
{ default:v4++;
case '1': v1++;
case '3': v3++;
case '2': v2++; }
printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4); }
A) v1=4,v2=2,v3=1,v4=1 B) v1=4,v2=9,v3=3,v4=1
C) v1=5,v2=8,v3=6,v4=1 D) v1=8,v2=8,v3=8,v4=8
(36) 下面程序的輸出是
main()
{int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}
A)k=11,k=12,k=11 B)k=11,k=13,k=13 C)k=11,k=013,k=0xb D)k=11,k=13,k=b
(37) 若有以下程序段,w和k都是整型變數:

w=k;
LB: if(w==0) go to LE;
w--;
printf("*");
goto LB;
LE: ┆
則不能與上面程序段等價的循環語句是
A)for(w=k;w!=0;w--) printf("*"); B)for(w=k;w;--w)printf("*");
C)w=k; D)w=k;
while(w--!=0)printf("*");w++; do{ w--;printf("*");}while(w!=0);
(38) 若有說明,double *p,a;則能通過scanf語句正確給輸入項讀入數據的程序段是
A)*p=&a; scanf("%lf",p); B)p=(double *)malloc(8);scanf("%f",p);
C) p=&a;scanf("%lf",a); D)p=&a; scanf("%le",p);
(39) 當執行下面程序且輸入:ABC時,輸出的結果是
#include
#include
main()
{ char ss[10]="12345";
gets(ss);printf("%s\n",ss); }
A) ABC B) ABC9 C) 123456ABC D) ABC456789
(40) 若有以下的說明和語句:
main()
{int t[3][2], *pt[3],k;
fpr(k=o; k<3;k++)pt[k]=t[k];
}
則以一選項中能正確表示t數組元素地址的表達式是
A) &t[3][2] B) *pt[0] C) *(pt+1) D) &pt[2]
(41) 下面程序輸出數組中的最大值,由s指針指向該元素.
main()
{ int a[10]={6,7,2,9,1,10,5,8,4,3,},*p,*s;
flr(p=a, s=a; p-a<10; p++)
if(---?---)s=p;
printf("The max:%d",*s):
}
則在if語句中的判斷表達式應該是
A) p>s B) *p>*s C) a[p]>a[s] D) p-a>p-s
(42) 下面程序的輸出是
#include
main()
{ char*a="abcdefgh";
fun(a);puts(a); }
fun (char * s)
{ int x=0,y;char c;
for(y=strlen(s)-1;x
A)abcdefgh B)hgfdecba C)dcbahgfe D)hgfedcba
(43) 若有以下函數調用語句: fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函數調用語句
中實參的個數是
A)3 B)4 C)5 D)6
(44) 下面程序的輸出是
main()
{ int t=1; fun(fun(t));}
fun(int h)
{ static int a[3]={1,2,3};
int k;
for(k=0;k<3;k++) a[k]+=a[k]-h;
for(k=1;k<3;k++) printf("%d",a[k]);
printf("\n"); return(a[h]);}
A)1,2,3, B)1,3,5, C) 1,3,5, D) 1,3,5,
1,5,9, 1,3,5, 0,4,8, -1,3,7,
(45) C語言中,函數的隱含存儲類別是
A)auto B)static C)extern D)無存儲類別
(46) 下面程序的輸出是
int w=3;
main()
{ int w=10; printf("%d\n",fun(5)*w); }

⑷ c語言 上機實操題目

#include<stdio.h>
#include<stdlib.h>

struct node
{
int data;
struct node *next;
};
struct node* create(int n)
{
int i;
struct node *t,*h,*p;

h=t=(struct node*)malloc(sizeof(struct node));
printf("請輸入第1個節點的數據:");
scanf("%d",&(*t).data);
for(i=2;i<=n;i++)
{
p=(struct node*)malloc(sizeof(struct node));
printf("請輸入第%d個節點的數據:",i);
scanf("%d",&(*p).data);
(*t).next=p;
t=p;
}
(*p).next=NULL;
return h;
}
void display(struct node *head)
{
while(head)
{
printf("%d",(*head).data);
if((*head).next)
printf("->");
head=(*head).next;
}
}
void myfree(struct node *head)
{
struct node *p=head;

while(p)
{
head=(*head).next;
free(p);
p=head;
}
}

int main()
{
struct node *head;

head=create(10);
display(head);
myfree(head);
return 0;
}

⑸ 初學問幾道C語言數組的練習題

/*1,將一個一位數組a[10]中的元素值按逆序重新存放.假定數組中原來元素順序為:1,3,5,7,9,8,6,4,2,0,按逆序重新存放後元素的值位:0,2,4,6,8,9,7,5,3,1。要求:在程序中將數組初值初始化,輸出逆序重新存放後元素的值。*/
#include "stdafx.h"

int main(int argc,char* argv[])
{
int a[10]={1,3,5,7,9,8,6,4,2,0};//初始化。
int b[10];
printf("順序的數據:\n");
for(int j=0;j<10;j++)
{
printf("%d",a[j]);
printf(" ");
}
for(int i=0;i<10;i++)
{
b[10-1-i]=a[i];
}

printf("\n逆序後的數據:\n");
for(int n=0;n<10;n++)
{
printf("%d",b[n]);
printf(" ");
}

return 0;
}

/*2,有整型數組a[20],首先輸入一組非0整數(少於20個)到該數組中,以輸入0值為結束。編寫4個函數分別求該數組中元素的1,正數個數,2,正數平均值,3,負數個數,4,負數平均值,最後在主函數中輸入4個求出的值。提示:將數組定義為:int a[20],實際只用數組的前若干個元素。
*/

#include "stdafx.h"

int fun1(int *ar,int num)
{
int au=0;
for(int i=0;i<num;i++)
{
if(ar[i]>0)
{
au++;
}
}
printf("正數個數:%d\n",au);
return au;
}
int fun2(int *ar,int num)
{
int au=0;
for(int i=0;i<num;i++)
{
if(ar[i]>0)
{
au+=ar[i];
}
}
au=au/fun1(ar,num);
printf("正數平均值:%d\n",au);

return au;

}

int fun3(int *ar,int num)
{
int au=0;
for(int i=0;i<num;i++)
{
if(ar[i]<0)
{
au++;
}
}
printf("負數個數:%d\n",au);
return au;
}
int fun4(int *ar,int num)
{
int au=0;
for(int i=0;i<num;i++)
{
if(ar[i]<0)
{
au+=ar[i];
}
}
au=au/fun1(ar,num);
printf("負數平均值:%d\n",au);

return au;

}

int main(int argc,char* argv[])
{
int a[20];
int num,date;
printf("請輸入數據:\n");
for(num=0;num<20;num++)
{
scanf("%d",&date);
if(date==0)
{
break;
}
a[num]=date;
}
fun2(a,num);
fun4(a,num);
return 0;
}

/*3,任意輸入一個4位數,存入變數i,將該數的每一位上的數字,分解到整型數組a[]中,用選擇法將a[]數組中的數排成升序,並輸入a[]數組的內容。要求選擇法排序在函數中完成。
如:int i,a[4];輸入i=8362
分解後:a[0]=2,a[1]=6,a[2]=3,a[3]=8
排序後:a[0]=2,a[1]=3,a[2]=6,a[3]=8
運行時,輸入8362
輸出2368 */
#include "stdafx.h"

void fun(int *a,int num)
{
for(int i=0;i<num-1;i++)
for(int j=i+1;j<num;j++)
{
if(a[i]>a[j])
{
int date=a[i];
a[i]=a[j];
a[j]=date;
}
}
}

int main(int argc,char* argv[])
{
int i=0;
int a[4];
printf("請輸入四位整數:\n");
scanf("%d",&i);
for(int s=1000,l=0;l<4;s/=10,l++)
{
a[l]=i/s;
i%=s;
}
fun(a,4);
for(int n=0;n<4;n++)
{
printf("%d",a[n]);
}

return 0;
}

,4,給定2維數組如下,求該數組2條對角線元素之和
a=3 6 4 6
8 3 1 3
4 7 1 2
2 9 5 3
要求:1,在主函數中實現:數組賦初值及求和結果的輸出 */
#include "stdafx.h"

int main(int argc,char* argv[])
{
int a[4][4]={{3,6,4,6},{8,3,1,3},{4,7,1,2},{2,9,5,3}};
int num=0;

for(int i=0,j=0;i<4;i++,j++)
{
num+=a[i][j];
}

printf("第一對角線之和:",num);
printf("%d\n",num);

for(i=4-1,j=4-1;i>0;i--,j--)
{
num+=a[i][j];
}

printf("第二對角線之和:",num);
printf("%d\n",num);
return 0;
}

/*6,編寫一個函數viod my_strcpy(char s1[],char s2[]),將s2中的字元串拷貝到數組s1中去。要求:
1,不允許使用C語言的庫函數strcpy()
2,在主函數中輸入2個字元串,調用函數my_strcpy()進行字元串拷貝,並在主函數中輸入字元串s1,s2內容。
注意:應該將字元數組s1[]定義足夠長,使之能存放連接後的字元串 */
#include "stdafx.h"

void str(char *str1,char *str2)
{
while(*str2)
{
*str1++=*str2++;
}
}

int main(int argc,char* argv[])
{
char st1[]="test str";
char st2[20]="";

str(st2,st1);
printf("%s\n",st2);
return 0;
}

/*7,輸入2個字元串,將對應字母交叉組成第三個字元串,最後輸入第三個字元串。例如輸入的2個字元串分別是「abcd」和「1234」,則合並後的字元串是「a1b2c3d4」。若2個字元串的長度不等,則其中的一個字元串多餘的部分放在結果字元串的尾部,如2個字元串分別是「banana」和「12」,則合並後的字元串是「b1a2nana」
要求:第一個字元串的第一個字母總是結果串的第一個字母。
*/
#include "stdafx.h"

void combinstr(char *str1,char *str2,char *str3)
{
for(;*str1||*str2;)
{
if(*str1)
{
*str3++=*str1++;
}
if(*str2)
{
*str3++=*str2++;
}
}
}

int main(int argc,char* argv[])
{
char st1[]="abcdefghi";
char st2[]="1234";
char st3[64]="";

combinstr(st1,st2,st3);
printf("%s\n",st3);
return 0;
}
只有第五個沒有了,你想怎麼示範?
算了隨便弄個可以看效果的了:/*5,已知5個學生的3門成績
COURSE1 COURSE2 COURSE3 AVER
STUD1 76 80 90
STUD2 90 65 77
STUD3 63 55 70
STUD4 90 92 97
STUD5 73 69 82
要求:1,求出並輸入每個學生的平均成績
2,求出並輸入每門課的平均成績

*/
#include "stdafx.h"

int main(int argc,char* argv[])
{
float stud[5][3]={{76,80,90},{90,65,77},{63,55,70},{90,92,97},{73,69,82}};
float num=0;
for(int i=0;i<5;i++)
{
for(int j=0;j<3;j++)
{
num+=stud[i][j];
}
num/=3;
printf("\n第%d個學生的平均成績:\n",i+1);
printf("%f\n",num);
num=0;

}

for(i=0;i<3;i++)
{
for(int j=0;j<5;j++)
{
num+=stud[i][j];
}
num/=5;
printf("\n第%d科的平均成績:\n",i+1);
printf("%f\n",num);
num=0;
}

return 0;
}

熱點內容
ecshop存儲圖片 發布:2024-11-30 04:44:08 瀏覽:978
utc時間linux 發布:2024-11-30 04:43:23 瀏覽:80
調報表需要在伺服器電腦嗎 發布:2024-11-30 04:37:26 瀏覽:225
軟體包訪問幫助 發布:2024-11-30 04:37:25 瀏覽:342
少兒編程網課 發布:2024-11-30 04:31:53 瀏覽:623
安卓系統更新後有什麼新功能 發布:2024-11-30 04:30:31 瀏覽:483
汽車密碼盒有什麼功能 發布:2024-11-30 04:30:28 瀏覽:843
分子構型演算法 發布:2024-11-30 04:30:20 瀏覽:677
演算法的收斂速度 發布:2024-11-30 04:23:16 瀏覽:398
伺服器ip示例 發布:2024-11-30 04:20:28 瀏覽:179