導航:首頁 > 編程語言 > c語言編程題經典文件

c語言編程題經典文件

發布時間:2023-02-01 08:36:19

Ⅰ 求高手,兩道c語言編寫題

第一題,頭文件是
#include <math.h>

第二題,對於不超過3位的int x,x/100是它的百位,x%10是它的個位,x/10%10是它的十位。

做題求嚴謹,輸入x以後判斷它是不是在范圍內,不在直接退出。

Ⅱ 10道經典的C語言例題(含參考程序)


1.列印出所有的「水仙花數」,所謂「水仙花數」是指一個三位數,其各位數字立方和等於該數本身。例如,153是一個「水仙花數」,因為153=1^3+5^3+3^3。

#include

#include

int main()

{

int _wei,shi_wei,ge_wei,i,sum=0;

for(i=100;i<1000;i++)

{

_wei=i/100;

shi_wei=(i%100)/10;

ge_wei=i%10;

if(i==pow(_wei,3)+pow(shi_wei,3)+pow(ge_wei,3))

{

printf("%d ",i);

sum++;

if(sum%5==0)

printf(" ");

}

}

printf(" ");

return 0;

}

2.請輸入任意兩個整數x和y,求其最大公約數和最小公倍數。

#include

int main()

{

int x,y,min,max,i;

printf("請輸入任意兩個整數:");

scanf("%d%d",&x,&y);

min=x>y?y:x;

max=x>y?x:y;

for(i=min;i>0;i--)

if(x%i==0&&y%i==0)

{

printf("這兩個整數的最大公約數為:%d ",i);

break;

}

for(i=max;i<=x*y;i++)

if(i%x==0&&i%y==0)

{

printf("這兩個整數的最小公倍數為:%d ",i);

break;

}

return 0;

}

3.輸入一行字元,分別統計出其中英文字母、空格、數字和其它字元的個數。

#include

#include

#define N 50

int main()

{

int sum1=0,sum2=0,sum3=0,sum4,i=0;

char str[N];

printf("請輸入一串字元串:");

scanf("%s",str);

for(i=0;i<strlen(str);i++) p=""> </strlen(str);i++)>

{

if((str[i]>='a'&&str[i]='A'&&str[i]<='Z'))

sum1++;

if(str[i]==' ')

sum2++;

if(str[i]>=Ɔ'&&str[i]<=Ə')

sum3++;

}

sum4=strlen(str)-sum1-sum2-sum3;

printf("英文字母的個數:%d ",sum1);

printf("空格的個數:%d ",sum2);

printf("數字的個數:%d ",sum3);

printf("其他符號的個數:%d ",sum4);

return 0;

}

4.求s=a+aa+aaa+aaaa+aa…a的值,其中a是一個數字。例如2+22+222+2222+22222(此時共有5個數相加),幾個數相加有鍵盤控制。

#include

#include

int main()

{

int a,n,s=0,i,x=0,y=0;

printf("請輸入整數a的值:");

scanf("%d",&a);

printf("請輸入相加的個數n:");

scanf("%d",&n);

for(i=0;i<n;i++) p=""> </n;i++)>

{

x=y+2*pow(10,i);

y=x;

s=s+x;

}

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

return 0;

}

5.一個數如果恰好等於它的因子之和,這個數就稱為「完數」。例如6=1+2+3。編程找出1000以內的所有完數。

#include

int main()

{

int sum=0,i,j;

printf("在1000以內的完數有:");

for(i=2;i<=1000;i++)

{

for(j=1;j<i;j++) p=""> </i;j++)>

if(i%j==0)

sum=sum+j;

if(sum==i)

printf("%d ",i);

sum=0;

}

printf(" ");

return 0;

}

6.輸入一個不多於5位的正整數,要求:1、求它是幾位數;2、逆序列印出個位數字。

#include

int pows(int a,int n)

{

int sum=1,i;

for(i=0;i<n;i++) p=""> </n;i++)>

sum=sum*a;

return sum;

}

int main()

{

int n,i,k,x;

printf("n=");

scanf("%d",&n);

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

if(n/pows(10,i)==0)

{

printf("%d ",i);

k=i;

break;

}

for(i=0;i<k;i++) p=""> </k;i++)>

{

x=n/pows(10,i)%10;

printf("%d",x);

}

printf(" ");

return 0;

}

7.輸入一個5位數,判斷它是不是迴文數。即12321是迴文數,個位與萬位相同,十位與千位相同。

#include

int main()

{

int n,a[5],i=0;

printf("請輸入一個5位數:");

scanf("%d",&n);

while(n!=0)

{

a[i]=n%10;

n=n/10;

i++;

}

if(a[0]==a[4]&&a[1]==a[3])

printf("這個數是迴文數 ");

else

printf("這個數不是迴文數 ");

return 0;

}

8.利用遞歸演算法,將所輸入的5個字元,以相反順序列印出來。

#include

void digui(char a[],int n)

{

if(n==1)

printf("%c",a[0]);

else

{

printf("%c",a[n-1]);

digui(a,n-1);

}

}

int main()

{

char str[5];

printf("請輸入5個字元:");

scanf("%s",str);

digui(str,5);

printf(" ");

return 0;

}

9.有一分數序列:2/1,3/2,5/3,8/5,13/8,21/13…球出這個序列的前20項之和。

#include

int main()

{

int i,a=1,b=1;

float sum=0.0;

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

{

sum=sum+(float)(a+i)/b;

b=a+i;

a=i;

}

printf("sum=%f ",sum);

return 0;

}

10.利用遞歸演算法求5!。

#include

int digui(int n)

{

if(n==1)

return 1;

else

return n*digui(n-1);

}

int main()

{

int n,sum;

printf("n:");

scanf("%d",&n);

sum=digui(n);

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

return 0;

}

Ⅲ C語言文件編程題!!急!!!

#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#include <string.h>void main()
{
int *buf1,*buf2;
int *num,i,j,k,tmp,filelen1,filelen2,numlen1,numlen2,numlen;
FILE *fp1,*fp2,*fp3;
if((fp1=fopen("f1.c","r"))==NULL)
{
printf("open f1 error!\n");
exit(0);
}
if((fp2=fopen("f2.c","r"))==NULL)
{
printf("open f2 error!\n");
exit(0);
}
if((fp3=fopen("f3.c","w"))==NULL)
{
printf("open f3 error!\n");
exit(0);
}
fseek(fp1, 0, SEEK_END);
filelen1 = ftell(fp1);
fseek(fp2, 0, SEEK_END);
filelen2 = ftell(fp2); buf1=(int*)malloc(sizeof(int)*filelen1);
buf2=(int*)malloc(sizeof(int)*filelen2);

numlen1=0;
numlen2=0;
rewind(fp1); //指針移到文件開始
rewind(fp2); //指針移到文件開始 i=0;
while(!feof(fp1))
{
fscanf(fp1,"%d",&buf1[i++]);//讀取文件中的數字
numlen1++;
}
for(i=0;i<numlen1;i++)
printf("%d ",buf1[i]);
printf("\n"); i=0;
while(!feof(fp2))
{
fscanf(fp2,"%d",&buf2[i++]);//讀取文件中的數字
numlen2++;
}
for(i=0;i<numlen2;i++)
printf("%d ",buf2[i]);
printf("\n"); numlen=numlen1+numlen2;
num=(int*)malloc(sizeof(int)*(numlen));//num存儲所有數字

for(i=0,j=0;i<numlen;i++)
{
if(i<numlen1)
num[i]=buf1[i];//buf1中的數字存到num中
else
num[i]=buf2[j++];//buf2中的數字存到num中
} for(i=0;i<numlen;i++)
printf("%d ",num[i]);
printf("\n"); for(j=0;j<numlen-1;j++)
{
for(i=0;i<numlen-1-j;i++)
if(num[i]<num[i+1]) //冒泡法排序
{
tmp=num[i];
num[i]=num[i+1];
num[i+1]=tmp;
}
}
for(i=0;i<numlen;i++)
printf("%d ",num[i]);
printf("\n"); for(i=0;i<numlen-1;i++)
for(j=i+1;j<numlen;)
{
if(num[i]==num[j])//存在相同的數字 就刪掉靠後的一個
{
for(k=j;k<numlen-1;k++)
num[k]=num[k+1];
numlen--;//刪掉一個數字之後就把num的長度減1
}
else//有相同的數時j保持,否則加1
j++;
} for(i=0;i<numlen;i++)
printf("%d ",num[i]);
printf("\n"); for(i=0;i<numlen;i++)
{
fprintf(fp3,"%d ",num[i]);//每行寫入10個數字
printf("%d ",num[i]);//每行寫入10個數字
if((i+1)%10==0)
{
fprintf(fp3,"\n");//寫入換行符
printf("\n");
}
}
free(buf1);
free(buf2);
free(num);
fclose(fp1);
fclose(fp2);
fclose(fp3);
}

Ⅳ 幾道C語言編程題求正解!

只做了第二道題,剛好我也在網路這道題。雖然我的代碼不是最好的,思維也有點亂,但僅提供給眾網友一個思路參考吧

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

int main(void)
{
int a, b; /*算式中的兩個操作數*/
int b1;
int i;
int flag1 = 0, flag2 = 0;//flag1表示含有非題目要求字元出現時的情況,flag2是指不含有+-符號的情況再針對其進行時空格行還是錯誤行的討論
char buf[200]; /*輸入緩沖,用於臨時存放讀入的文本*/
char op; /*運算符*/
int index = 0;//行數
FILE *fp = NULL;
fp = fopen("Comp.txt", "r");
if (fp == NULL)
{
printf("Error: Cannot open Comp.txt!\n");
//exit(1);
}

while(fgets(buf, 200, fp))//讀一行數據,讀到文件尾的時候,返回NULL,0,結束循環
//for(; !feof(fp);index++)
{
++index;
if (buf[0] == 10)//如果什麼都沒有的空行,直接跳到下一行的循環
{
continue;
}
for(i = 0; buf[i] != 10; i++)//判斷字元是否符合要求
{
flag1 = 0;
if ((buf[i] <= '9' && buf[i] >= '0') || buf[i] == '+' || buf[i] == '-' || buf[i] == ' ' )//|| buf[i] == 10 || buf[i] == 0)
{
if (buf[i] == '+' || buf[i] == '-')
{
flag2 = 1;
}
}
else
{
printf("Line %03d: Error!\n", index);//不合要求
flag1 = 1;
break;
}
}
if (flag1 == 1)//不和要求的字元,跳到下一行
{
flag1 = 0;
continue;
}
if (flag2 == 0)//字元符合要求但是沒有+-符號。判斷其為空格行還是無運算行並作出相應反應
{
for(i = 0; buf[i] != 10; i++)
{
if (buf[i] != ' ')
{
printf("Line %03d: Error!\n", index);
break;
}
}
flag2 = 0;
continue;
}
sscanf(buf, "%d%s%d", &a, &op, &b);//把一行字元轉化為a op b形式
if(op == '+')
{
b1 = b;
}
else
{
b1 = -b;
}
printf("Line %03d: %5d %c %-5d = %-6d\n", index, a, op, b, a+b1);//輸出
flag2 = 0;
}

fclose(fp);
return 0;
}

Ⅳ C語言編程題

我也不會啊

Ⅵ 求一些c編程題

C語言超級經典400道題目
1、C語言程序的基本單位是____ A) 程序行 B) 語句 C) 函數 D) 字元、C、1
2、C語言程序的三種基本結構是____ A、順序結構,選擇結構,循環結構 B、遞歸結構,循環結構,轉移結構 C、嵌套結構,遞歸結構,順序結構 D、循環結構,轉移結構,順序結構、A、1
3、C語言規定,程序中各函數之間 A) 既允許直接遞歸調用也允許間接遞歸調用 B) 不允許直接遞歸調用也不允許間接遞歸調用 C) 允許直接遞歸調用不允許間接遞歸調用 D) 不允許直接遞歸調用允許間接遞歸調用、A、1
4、C語言中可處理的文件類型是( ) A) 文本文件和數據文件 B)文本文件和二進制文件 C) 數據文件和二進制文件 D)數據代碼文件、B、1
5、C語言可執行程序的開始執行點是( ) A) 程序中第一條可執行語句 B) 程序中第一個函數 C) 程序中的main函數 D) 包含文件中的第一個函數、C、1
6、C語言提供的合法的數據類型關鍵字是 A)double B) short C) integer D) char、B、1
7、C語言中,運算對象必須是整型數的運算符是 A) % B) \ C) %和\ D) * *、A、1
8、C語言中函數返回值的類型是由( )決定。 A) return語句中的表達式類型 B) 調用函數的主調函數類型 C) 調用函數時臨時 D) 定義函數時所指定的函數類型、D、1
9、C語言中數組名作為參數傳遞給函數,作為實在參數的數組名被處理為_____。 A、 該數組的長度。 B、該數組的元素個數。 C、 該數組中各元素的值。 D、 該數組的首地址。、D、1
10、C語言中數組下標的下限是________。 A、1 B、0 C、視具體情況 D、無固定下限、B、1
11、C語言中提供的合法關鍵字是____ A、swith B、cher C、case D、default、D、1
12、C語言中文件的存取方式是________。 A、順序存取 B、隨機存取 C、順序存取、隨機存取均可 D、順序存取、隨機存取均不可、C、1
13、C語言中最簡單的數據類型包括 A) 整型、實型、邏輯型 B) 整型、實型、字元型 C) 整型、字元型、邏輯型 D) 整型、實型、邏輯型、字元型、B、1
14、sizeof(float)是( ) A) 一種函數調用 B) 一個不合法的表示形式 C) 一個整型表達式 D) 一個浮點表達式、C、1
15、x、y、z被定義為int型變數,若從鍵盤給x、y、z輸入數據,正確的輸入語句是 A) input x,y,z; B) scanf("%d%d%d",&x,&y,&z); C) scanf("%d%d%d",x,y,z); D) read("%d%d%d",&x,&y,&z);、B、1
16、表達式:10!=9的值是 A) true B) 非零值 C) 0 D) 1、D、1
17、表示關系x<=y<=z的c語言表達式為 A) (X<=Y)&&(Y<=Z) B) (X<=Y)AND(Y<=Z) C) (X<=Y<=Z) D) (X<=Y)&(Y<=Z)、A、1
18、程序片段:在TC20中, int i=65536; printf("%d\n",i);的輸出結果是____ A) 65536 B) 0 C) 有語法錯誤,無輸出結果 D) -1、B、1
19、當調用函數時,實參是一個數組名,則向函數傳送的是____ A) 數組的長度 B) 數組的首地址 C) 數組每一個元素的地址 D) 數組每個元素中的值、B、1
20、對嵌套子程序調用說法正確的是____。 A、 外層子程序可以調用所有的內層子程序 B、 內層了程序只可以調用包含本身的外層子程序,不可以隔層調用 C、 外分程序必須能完全套住內分程序 D、 以上說法均不正確、C、1
21、對於基類型相同的兩個指針變數之間,不能進行的運算是 A) < B) = C) + D) -、C、1
22、合法的C語言中,合法的長整型常數是 A) '\t' B) "A" C) 65 D) A、A、1
23、假定int類型變數佔用兩個位元組,其有定義:int x[10]={0,2,4};,則數組x在內存中所佔位元組數是 A) 3 B) 6 C) 10 D) 20、D、1
24、假定有以下變數定義: int k=7 ,x=12; 則能使值為3的表達式是 A x%=(k%=5) B x%=(k-k%5) C x%=k-k%5 D (x%=k)-(k%=5)、D、1
25、請讀程序片段(字元串內沒有空格): printf("%d\n",strlen("ATS\n012\1\\"));的輸出結果是 A) 11 B) 10 C) 9 D) 8 、C、1
26、請選出合法的C語言賦值語句 A) a=b=58 B) i++; C) a=58,b=58 D) k=int(a+b);、B、1
27、若a為int類型,且其值為3,則執行完表達式a+=a-=a*a後,a的值是 A) -3 B) 9 C) -12 D) 6、C、1
28、若int類型占兩個位元組,則以下語句輸出為________。 int k=-1; printf("%d,u%\n",k,k); A、-1,-1 B、-1,65536 C、-1,32768 D、-1,65535、D、1
29、若變數a是int類型,並執行了語句:a=『A'+1、6;,則正確的敘述是 A) a的值是字元C B) a的值是浮點型 C) 不允許字元型和浮點型相加 D) a的值是字元『A』的ASCII值加上1。、D、1
30、若變數已正確說明為float類型,要通過語句scanf("%f %f %f ",&a,&b,&c);給a賦於10、0,b賦予22、0,c賦予33、0,不正確的輸入形式是: A) 10 B) 10、0,22、0,33、0 22 33 C) 10、0 D) 10 22 22、0 33、0 33、B、1
31、若要求在if後一對圓括弧中表示a不等於0的關系,則能正確表示這一關系的表達式為 A) a<>0 B) !a C) a=0 D) a、B、1
32、若已定義x和y為double類型,則表達式:x=1,y=x+3/2的值是 A)1 B)2 C)2、0 D)2、5、C、1
33、若有定義:int a=8,b=5,c;,執行語句c=a/b+0、4;後,c的值為 A) 1、4 B) 1 C) 2、0 D) 2、B、1
34、若有定義:int x,y;char a,b,c;並有以下輸入數據(此處< CR> 代表換行符,/u代表空格): 1u2 AuBuC 則能給x賦整數1,給y賦整數2,給a賦字元A,給b賦字元B,給c賦字元C 的正確程序段是 A) scanf("x=%d y+%d",&x,&y);a=getchar();b=getchar();c=getchar(); B) scanf("%d %d",&x,&y);a=getchar();b=getchar();c=getchar(); C) scanf("%d%d%c%c%c,&x,&y,&a,&b,&c); D) scanf("%d%d%c%c%c%c%c%c:&x,&y,&a,&a,&b,&b,&c,&c);、D、1
35、若有定義和語句: char s[10]:s="abcd";printf("%s\n",s); 則結果是(以下u代表空格) A) 輸出abcd B) 輸出a C) 輸出abcuuuu D) 編譯不通過、D、1
36、若有以下程序段, int c1=1,c2=2,c3; c3=1、0/c2*c1; 則執行後,c3中的值是 A) 0 B) 0、5 C) 1 D) 2、A、1
37、若有以下定義: char a; int b; float c; double d; 則表達式a*b+d-c值的類型為 A) float B) int C) char D) double、D、1
38、若有以下定義和語句 char c1='b',c2='e'; printf("%d,%c\n",c2-c1,c2-'a'+"A"); 則輸出結果是: A)2,M B)3,E C)2,E D)輸出項與對應的格式控制不一致,輸出結果不確定、B、1
39、若有以下函數調用語句: fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函數調用語句中實參的個數是 A)3 B)4 C)5 D)6、A、1
40、若執行下面的程序時從鍵盤上輸入3和4,則輸出是____ A) 14 B) 16 C) 18 D) 20 main( ) { int a,b,s; scanf("%d %d",&a,&b); s=a; if(a、B、1
41、若執行下面的程序時從鍵盤上輸入5,則輸出是 A) 7 B) 6 C) 5 D) 4 main() { int x; scanf("%d",&x); if(x++>5) printf("%d\n",x); else printf("%d\n",x--);}、B、1
42、若執行以下程序時從鍵盤上輸入9,則輸出結果是 A) 11 B) 10 C) 9 D) 8 main( ) { int n; scanf("%d",&n); if(n++、B、1
43、設 a、b、c、d、m、n均為 int型變數,且 a=5、b=6、c=7、d=8、m=2、n=2,則邏輯表達式 (m=a>b)&&(n=c>d)運算後,n的值為____ A) 0 B) 1 C) 2 D) 3、C、1
44、設 int a=12,則執行完語句 a+=a-=a*a後,a的值是 A) 552 B) 264 C) 144 D) -264、D、1
45、設 int b=2;表達式(b>>2)/(b>>1)的值是 A) 0 B) 2 C) 4 D) 8、A、1
46、設a,b和c都是int型變數,且a=3,b=4,c=5,則下列表達式中,值為0的表達式是________ A)'a'&&'b' B)a<=b C)a||b+c&&b-c D)!((a<B)&&!C||1)、D、1< p>
47、設x、y、z和k都是int型變數,則執行表達式:x=(y=4,z=16,k=32)後,x的值為 A 4 B 16 C 32 D 52、C、1
48、設x=3,y=-4,z=6,寫出表達式的結果。 !(x>y)+(y!=z)||(x+y)&&(y-z) A、0 B、1 C、-1 D、6、B、1
49、設x和y均為int 型變數,則以下語句:x+=y;y=x-y;y=x-y;x-=y;的功能是 A、把x 和y按從大到小排列 B、把x和y按從小到大排列 C、無確定結果 D、交換x和y中的值、D、1
50、設有 int x=11; 則表達式 (x++ * 1/3) 的值是 A) 3 B) 4 C) 11 D) 12、A、1
51、設有如下的變數定義: int i =8,k ,a,b ; unsigned long w=5; double x=1,42,y=5、2; 則以下符合C語言語法的表達式是 A、 a+=a-=(b=4)*(a=3) B、 x%(-3); C、 a=a*3=2 D、 y=float(i)、A、1
52、設有如下定義: char *aa[2]={"abcd","ABCD"}; 則以下就法中正確的是 A) aa數組成元素的值分別是"abcd"和ABCD" B) aa是指針變數,它指向含有兩個數組元素的字元型一維數組 C) aa數組的兩個元素分別存放的是含有4個字元的一維字元數組的首地址 D) aa數組的兩個元素中各自存放了字元'a'和'A'的地址、D、1
53、設有如下定義: int x=10,y=3,z; 則語句 printf("%d\n",z=(x%y,x/y)); 的輸出結果是 A) 1 B) 0 C) 4 D) 3、D、1
54、設有數組定義: char array [ ]="China"; 則數組 array所佔的空間為 A) 4個位元組 B) 5個位元組 C) 6個位元組 D) 7個位元組、C、1
55、設有說明語句:char a='\72';則變數a A) 包含1個字元 B) 包含2個字元 C) 包含3個字元 D) 說明不合法、A、1
56、設有以下語句:int x=03,y=02,z=01;那麼語句printf("%d",x|y&~Z)的執行結果( )。 (A) 1 (B) 2 (C) 3 (D) 0、C、1
57、下列if語句中,不正確的是________。 A、if(x>y); B、if(x==y) x+=y; C、if(x!=y) scanf("%d",&x) else x=1; D、if(x、C、1
58、下列變數定義中合法的是 A) short _a=1-、le-1; B) double b=1+5e2、5; C) long do=0xfdaL; D) float 2_and=1-e-3;、A、1
59、下列標識符中不合法的是_______ A、s_name B、_e C、fox D、3DS、D、1
60、下列不正確的轉義字元是 A) '\\' B) '\" C) '074' D) '\0'、C、1
61、請讀程序: main() { int a=1,b=2; printf("%d\n",a=a+1,a+6,b+2);} 則上面程序的輸出結果是____ A、2 B、3 C、4 D、1、A、1
62、請讀程序: int i=0,j=0,a=6; if((++i>0)||(++j>0))a++; printf("i=%d,j=%d,a=d%\n",i,j,a); 則上面程序的輸出結果是____ A、i=0,j=0,a=6 B、i=1,j=0,a=7 C、i=1,j=1,a=6 D、i=1,j=1,a=7、B、1
63、下列程序段的輸出結果為________? int y=1; while(y--); printf("y=%d\n",y); A、y=-1B、y=0C、死循環D、y=9 、A、1
64、下列程序執行後的輸出結果是 A) 3 B) 6 C) 9 D) 隨機數 main() { int a[3][3], *p,i; p=&a[0][0]; for(i=p; i、B、1
65、下列程序執行後的輸出結果是 A) G B) H C) i D) J main() { int x='f'; printf("%c \n",'A'+(x-'a'+1)); }、A、1
66、下列程序執行後的輸出結果是(小數點後只寫一位) A) 6 6 6、0 6、0 B) 6 6 6、7 6、7 C) 6 6 6、0 6、7 D) 6 6 6、7 6、0 main() { double d; float f; ling l; int i; i=f=1=d=20/3; printf("%d %ld %f %f \n", i,l,f,d); }、A、1
67、下列可作為C語言賦值語句的是 A)x=3,y=5 B)a=b=6 C)i--; D)y=int(x);、C、1
68、下列描述中不正確的是 A) 字元型數組中可以存放字元串 B) 可以對字元型數組進行整體輸入、輸出 C) 可以對整型數組進行整體輸入、輸出 D) 不能在賦值語句中通過賦值運算符"="對字元型數組進行整體賦值、C、1
69、下列說法中正確的是________。 A、在switch語句中一定要使用break語句 B、在switch語句中不一定要使用break語句 C、break語句是switch語句的一部分 D、break只能用於switch語句中、B、1
70、下列運算符其優先順序最高的是________。 A、|| B、&& C、+ D、=、C、1
71、下面的DO循環中,一共循環( )次。 M=5 N=1 DO WHiLE N<=M N=N+1 ENDDO (A) 1 (B) 6 (C) 4 (D) 5、D、1
72、請讀程序: #include main() { int a=1,b=4,c=2; float x=5、5,y=9、0,z; z=(a+b)/c+sqrt((double)y)*1、2/c+x; printf("%f\n",z); } 則上面程序的輸出結果是____ A、數據溢出B、9、3C、9、300000D、0、93、C、1
73、請讀程序: int a,b,c; a=(b=(c=10)+5)-5; printf("a,b,c=d%,d%,d%",a,b,c); c=a=0; b=(a+10); printf("a,b,c=%d,d%,d%",a,b,c); 則上面程序的輸出結果是____ A、a,b,c=0,10,10 a,b,c=10,15,10 B、a,b,c=10,15,10 a,b,c=10,15,10 C、a,b,c=10,15,10 a,b,c=0,10,0 D、a,b,c=10,15,10 a,b,c=10,15,15、C、1
74、寫出下列語句執行後a,b的值。 int a=6,b; b=(++b)+(a++); A、a=8,b=14 B、a=7,b=8 C、a=14,b=14 D、a=8,b=8、A、1
75、請讀程序: m=1234、123; printf=("%-8、3f\n",m); printf=("%10、3f\n",m); 則上面程序的輸出結果是____ A、1234、12300 1234、123 B、1234、123 1234、123 C、1234、123 1234、12300 D、1234、12300 1234、123、B、1
76、一個C語言的語句至少應包一個________ A、{} B、逗號 C、分號 D、什麼不要、C、1
77、一個完整的C源程序是________。 A、要由一個主函數(或)一個以上的非主函數構成 B、由一個且僅由一個主函數和零個以上(含零)的非主函數構成 C、要由一個主函數和一個以上的非主函數構成 D、由一個且只有一個主函數或多個非主函數構成、B、1
78、已知整型變數a=13和b=6,則a&b的值是________,a^b的值是________ A、4 13 B、4 11 C、1 11 D、4 13、B、1
79、以下for語句構成的循環執行了( )次。 # include #define N i #define M N+1 # define NUM (M+1)*M/2 main( ) {int i,n=0; for (i=1;i<=num;i++) {n++; printf("%d",n); } } (A) 5 (B) 6 (C) 8 (D) 9、C、1
80、以下程序的輸出結果是____ # include main( ) { printf("%d\n",NULL); } (A) 不確定的 (B) 0 (C) -1 (D) 1、B、1
81、在調用函數時,以下描述中正確的是________。 A、調用函數時,實參可以是表達式 B、調用函數時,將為形參分配內存單元 C、調用函數時,實參與形參的原型必須一致 D、調用函數時,實參與形參可以用內存單元、D、1
82、有以下程序段 int k=0 while(k=1)k++; while 循環執行的次數是 A) 無限次 B) 有語法錯,不能執行 C) 一次也不執行 D) 執行1次、A、1
83、有以下函數 char fun(char *p) { return p; } 該函數的返回值是 A) 無確切的值 B) 形參p中存放的地址值 B) 一個臨時存儲單元的地址 D) 形參p自身的地址值、B、1
84、語句printf("%d\n",12&012);的輸出結果是____ A) 12 B) 8 C) 6 D) 012、B、1
85、語句:printf("%d",(a=2)&&(b= -2);的輸出結果是____ A) 無輸出 B) 結果不確定 C) -1 D) 1、D、1
86、運算完下面的C語言程序段以後,a的值是______,b的值是______,c的值是________。 int x=10,y=9; int a,b,c; a=(--x==y++)?--x:++y; b=x++; c=y; A、6 9 13 B、8 7 11 C、8 9 10 D、8 7 10、C、1
87、在C語言程序中,注釋部分從哪開始,到哪結束? A、從(到)結束 B、從REM開始無結束志標志 C、無起始標志 D、從/*開始,*/結束、D、1
88、在C語言提供的合法的關鍵字是 A) swicth B) cher C) Case D) default、D、1
89、在C語言中,不正確的int類型的常數是____ A) 32768 B) 0 C) 037 D) 0xAF、A、1
90、在C語言程序中,當while語句構成的循環中的條件為______時,結束循環。 A、0 B、1 C、true D、非0、A、1
91、在C語言中,函數的隱含存儲類別是 A) auto B) static C) extern D) 無存儲類別、C、1
92、在C語言中,合法的長整型常數是 A) OL B) 4962710 C) 324562& D) 216D、A、1
93、在C語言中,合法的字元常量是 A) '\084' B) '\x43' C) 'ab' D) "\0"、B、1
94、在C語言中,若對函數類型未加明顯式說明,則函數的隱含類型是____類型 A) void B) double C) int D) char、C、1
95、在C語言中,形參的預設存儲類是 A) auto B) register C) static D) extern、A、1
96、在C語言中,要求運算數必須是整型的運算符是 A) % B) / C) < D) !、A、1
97、在宏定義 #define PI 3、14159中,用宏名PI代替一個 A) 單精度數 B) 雙精度數 C) 常量 D) 字元串、D、1
98、在C語言程序中,可以用做變數名的是____ A) 1e5 B) a1 C) int D) *p、B、1
99、在以下一組運算符中,優先順序最高的運算符是 A)<= B)= C)% D)&&、C、1
100、字元(char)型數據在微機內存中的存儲形式是____ A) 反碼 B) 補碼 C) EBCDIC碼 D) ASCII碼、D、1
101、執行語句: for (i=1;i++、C、2
102、指出下面正確的輸入語句是( ) A:scanf("a=b=%d",&a,&b) B:scanf("a=%d,b=%f",&a,&b) C:scanf("%3c",c) D:scanf("%5、2f",&a)、B、2
103、執行下面的程序後,a的值為 main() { int a,b; for (a=1,b=1;a<=100;a++) { if(b>=20) break; if(b%3==1) {b+=3; continue; } b-=5; } } A) 7 B) 8 C) 9 D) 10、B、2
104、在執行以下程序時,如果從鍵盤上輸入:ABCdef〈回車〉,則輸出為 A)ABCdef B)abcdef C)abc D)DEF # include main() { chsr ch; while((ch=getchar())!='\n') { if(ch>='A'&& ch<='Z')ch=ch+32; 、C、2
105、整型變數x和y的值相等、且為非0值,則以下選項中,結果為零的表達式是 A) x || y B) x | y C) x & y D) x ^ y、D、2
106、在以下定義中,正確的說明語句為____ A) int a['a'] B)int a[3,4] C)int a[ ][ ] D)int *a[10]、D、2
107、執行下列程序時輸入:123456789,輸出結果是 A) 123,456,789 B) 1,456,789 C) 1,23,456,789 D) 1,23,456 main() { char s[100]; int c, i; scanf("%c",&c); scanf("%d",&i); scanf("%s",s); printf("%c,%d,%s \n",c,i,s); }、D、2
108、執行下面程序片段的結果是 int x=23; do { printf("%2d",x--);} while(!x); A) 列印出321 B) 列印出23 C) 不列印任何內容 D) 陷入死循環、B、2
109、在說明語句:int *f();中,標識符f代表的是____ A) 一個用於指向整型數據的指針變數 B) 一個用於指向一維數組的行指針 C) 一個用於指向函數的指針變數 D) 一個返回值為指針型的函數名、D、2
110、在下列選項中,不正確的賦值語句是____ A) ++t; B) n1=(n2=(n3=0)); C) k=i==j; D) a=b+c=1;、D、2
111、在C語言中,若需一變數只在本文件中所有函數使用,則該變數的存儲類別是________ A、extern B、register C、auto D、static、D、2
112、在C語言程序中,當do-while語句構成的循環中的條件為______時,結束循環。 A、0 B、1 C、true D、非0、A、2
113、在16位C編譯系統上,若定義long a; ,則能給a賦40000的正確語句是 A) a=20000+20000; B) a=4000*10; C) a=30000+10000; D) a=4000L*10L;、D、2
114、閱讀以下程序: main() { int x; scanf("%d",&x); if(x--、B、2
115、運行以下程序後,如果從鍵盤上輸入china#,則輸出結果為 A、2,0 B、5,0 C、5,5 D、2,5 #include main( ) { int v1=0,v2=0; char ch ; while ((ch=getchar())!='#') switch (ch ) { case 'a': case 'h': default: v1++; case '0':v2++; } printf("%d,%d\n",v1,v2);、C、2
116、請讀程序: main() { int a=1,b=2,c=3; ++a; c+=++b; { int b=4,c; c=b*3; a+=c; printf("first:%d,%d,%d\n",a,b,c); a+=c; printf("Second:%d,%d,%d\n",a,b,c); } printf("third:%d,%d,%d\n",a,b,c); } 該程序的輸出是________。 A、first: 12,4,12 Second: 26,4,12 third: 4,3,6B、first: 14,4,12 Second: 26,12,12 third: 26,3,4C、first: 14,4,12 Second: 26,4,12 third: 26,3,6 D、first: 14,4,12 Second: 26,6,12 third: 26,4,6、C、2
117、閱讀程序: #include main() { int a[10]={1,2,3,4,5,6,7,8,9,0},*p; p=a; printf("%x\n",p); printf("%x\n",p+9); } 該程序有兩個printf 語句, 如果第一個printf 語句輸出的是194, 則第二個printf語句的輸出結果是 A) 203 B) 204 C) 1a4 D) 1a6、D、2
118、與 y=(x>0?1:x0) y=1; B) if(x) else if(x0)y=1; else y=0; else if(x=0) if(x>0)y=1; if(x>0)y=1; else if(x==0)y=0; else y=-1; else y=-1;、A、2
119、以下合法的賦值語句是 A) x=y=100 B) d--; C) x+y; D) c=int(a+b);、B、2
120、以下函數返回a所指數組中最小的值所在的下標值 fun(int *a, int n) { int i,j=0,p; p=j; for(i=j;i、D、2
121、以下函數值的類型是 fun ( float x ) { float y; y= 3*x-4; return y; } A) int B) 不確定 C) void D) float、A、2
122、以下說法中正確的是 A) C語言程序總是從第一個的函數開始執行 B) 在C語言程序中,要調用的函數必須在main()函數中定義 C) C語言程序總是從main()函數開始執行 D) C語言程序中的main()函數必須放在程序的開始部分、C、2
123、以下所列的各函數首部中,正確的是 A) void play(var a:integer,var b:integer) B) void play(int a,b) C) void play(int a,int b) D) sub play(a as integer,b as integer)、C、2
124、以下敘述正確的是 A)輸入項可以是一個實型常量,如: scanf("%f"、3、5); B)只有格式控制,沒有輸入項,也能正確輸入數據到內存,例如: scanf("a=%d,b=%d); C)當輸入一個實型數據時,格式控制部分可以規定小數點後的位數,例如: scanf("%4、2f",&f); D)當輸入數據時,必須指明變數地址,例如: scanf("%f、&f); 、C、2
125、以下敘述正確的是 A) do-while語句構成的循環不能用其它語句構成的循環來代替。 B) do-while語句構成的循環只能用break語句退出。 C) 用do-while語句構成的循環,在while後的表達式為非零時結束循環。 D) 用do-while語句構成的循環,在while後的表達式為零時結束循環。、D、2
126、以下敘述中不正確的是 A) 在C中,函數中的自動變數可以賦初值,每調用一次,賦一次初值。 B) 在C中,在調用函數時,實在參數和對應形參在類型上只需賦值兼容。 C) 在C中,外部變數的隱含類別是自動存儲類別。 D) 在C中,函數形參可以說明為register變數。、C、2
127、以下敘述中不正確的是____ A) 在不同的函數中可以使用相同名字的變數 B) 函數中的形式參數是局部變數 C) 在一個函數內定義的變數只在本函數范圍內有效 D) 在一個函數內的復合語句中定義的變數在本函數范圍內有效、D、2
128、以下程序運行後,輸出結果是 A)1000 B)10010 C)00110 D)10100 main () { int y=18,i=0,j,a[8]; do { a[i]=y%2;i++; y=y/2; } while(y>=1); for(j=i-1>0;j--)printf(%d",a[j]); printf("h\n"); }、B、2
129、以下程序運行後,如果從鍵盤上輸入: book book 則輸出結果是 A)*8 B)#9 C)#6 D)*9 #include main() {char a1[80],a2[80],*s1=a1,*s2=a2; gets(s1); gets(s2); if(!strcmp(s1,s2)) printf(「*」); else printf(「#」); printf(「%d\n」,strlen(strcat(s1,s2))) }、B、2
130、以下程序運行後,輸出結果是 A)6385 B)22 C)33 D)693825 main() { char ch[2][5]={"693","825"},*p[2]; int i,j,s=0; for (i=0;i='0' && p[i][j]<='9';j+=2) s=10*s+p[i][j]-'0'; printf("%d\n",s); }、A、2
131、以下程序運行後,輸出結果是 A)84 B)99 C)95 D)44 int d=1; fun (int p) { int d=5; d+=p++; printf("%d",d); } main() { int a=3; fun(a); d+=a++; printf("%d\n",d); }、A、2
132、以下程序執行後a的值是 A)4 B)1 C)0 D)運行時出錯,a無定值 main() { int a,k=4,m=6,*p1=&k,*p2=&m; a=p1==&m; printf("%d\n",a); } 、C、2
133、以下程序執行後sum的值是 A)15 B)14 C) 不確定 D)0 min() { int i , sum; for(i=1;i、C、2
134、以下程序中,while循環的循環次數是 main() { int i=0; while(i、D、2
135、以下定義語句中,錯誤的是 A) int a[]={1,2}; B) char *a[3]; C) char s[10]="test"; D) int n=5,a[n];、D、2
136、以下對C語言函數的有關描述中,正確的是 A) 在C中,調用函數時,只能把實參的值傳送給形參,形參的值不能傳送給實參 B) C函數既可以嵌套定義又可以遞歸調用 C) 函數必須有返回值,否則不能使用函數 D) C程序中有調用關系的所有函數必須放在同一個源程序文件中、A、2

Ⅶ 經典C語言編程30例(二)

【程序31】
題目:請輸入星期幾的第一個字母來判斷一下是星期幾,如果第一個字母一樣,則繼續
判斷第二個字母。
1.程序分析:用情況語句比較好,如果第一個字母一樣,則判斷用情況語句或if語句判斷第二個字母。
2.程序源代碼:
#include
void main()
{
char letter;
printf("please input the first letter of someday\n");
while ((letter=getch())!='Y')/*當所按字母為Y時才結束*/
{ switch (letter)
{case 'S':printf("please input second letter\n");
if((letter=getch())=='a')
printf("saturday\n");
else if ((letter=getch())=='u')
printf("sunday\n");
else printf("data error\n");
break;
case 'F':printf("friday\n");break;
case 'M':printf("monday\n");break;
case 'T':printf("please input second letter\n");
if((letter=getch())=='u')
printf("tuesday\n");
else if ((letter=getch())=='h')
printf("thursday\n");
else printf("data error\n");
break;
case 'W':printf("wednesday\n");break;
default: printf("data error\n");
}
}
}
==============================================================
【程序32】
題目:Press any key to change color, do you want to try it. Please hurry up!
1.程序分析:
2.程序源代碼:
#include
void main(void)
{
int color;
for (color = 0; color < 8; color++)
{
textbackground(color);/*設置文本的背景顏色*/
cprintf("This is color %d\r\n", color);
cprintf("Press any key to continue\r\n");
getch();/*輸入字元看不見*/
}
}
==============================================================
【程序33】
題目:學習gotoxy()與clrscr()函數
1.程序分析:
2.程序源代碼:
#include
void main(void)
{
clrscr();/*清屏函數*/
textbackground(2);
gotoxy(1, 5);/*定位函數*/
cprintf("Output at row 5 column 1\n");
textbackground(3);
gotoxy(20, 10);
cprintf("Output at row 10 column 20\n");
}
==============================================================
【程序34】
題目:練習函數調用
1. 程序分析:
2.程序源代碼:
#include
void hello_world(void)
{
printf("Hello, world!\n");
}
void three_hellos(void)
{
int counter;
for (counter = 1; counter <= 3; counter++)
hello_world();/*調用此函數*/
}
void main(void)
{
three_hellos();/*調用此函數*/
}
==============================================================
【程序35】
題目:文本顏色設置
1.程序分析:
2.程序源代碼:
#include
void main(void)
{
int color;
for (color = 1; color < 16; color++)
{
textcolor(color);/*設置文本顏色*/
cprintf("This is color %d\r\n", color);
}
textcolor(128 + 15);
cprintf("This is blinking\r\n");
}
==============================================================
【程序36】
題目:求100之內的素數
1.程序分析:
2.程序源代碼:
#include
#include "math.h"
#define N 101
main()
{
int i,j,line,a[N];
for(i=2;ifor(i=2;i for(j=i+1;j {
if(a[i]!=0&&a[j]!=0)
if(a[j]%a[i]==0)
a[j]=0;}
printf("\n");
for(i=2,line=0;i{
if(a[i]!=0)
{printf("]",a[i]);
line++;}
if(line==10)
{printf("\n");
line=0;}
}
}
==============================================================
【程序37】
題目:對10個數進行排序
1.程序分析:可以利用選擇法,即從後9個比較過程中,選擇一個最小的與第一個元素交換,
下次類推,即用第二個元素與後8個進行比較,並進行交換。
2.程序源代碼:
#define N 10
main()
{int i,j,min,tem,a[N];
/*input data*/
printf("please input ten num:\n");
for(i=0;i{
printf("a[%d]=",i);
scanf("%d",&a[i]);}
printf("\n");
for(i=0;iprintf("]",a[i]);
printf("\n");
/*sort ten num*/
for(i=0;i{min=i;
for(j=i+1;jif(a[min]>a[j]) min=j;
tem=a[i];
a[i]=a[min];
a[min]=tem;
}
/*output data*/
printf("After sorted \n");
for(i=0;iprintf("]",a[i]);
}
==============================================================
【程序38】
題目:求一個3*3矩陣對角線元素之和
1.程序分析:利用雙重for循環控制輸入二維數組,再將a[i][i]累加後輸出。
2.程序源代碼:
main()
{
float a[3][3],sum=0;
int i,j;
printf("please input rectangle element:\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%f",&a[i][j]);
for(i=0;i<3;i++)
sum=sum+a[i][i];
printf("ijiaoxian he is %6.2f",sum);
}
==============================================================
【程序39】
題目:有一個已經排好序的數組。現輸入一個數,要求按原來的規律將它插入數組中。
1. 程序分析:首先判斷此數是否大於最後一個數,然後再考慮插入中間的數的情況,插入後
此元素之後的數,依次後移一個位置。
2.程序源代碼:
main()
{
int a[11]={1,4,6,9,13,16,19,28,40,100};
int temp1,temp2,number,end,i,j;
printf("original array is:\n");
for(i=0;i<10;i++)
printf("]",a[i]);
printf("\n");
printf("insert a new number:");
scanf("%d",&number);
end=a[9];
if(number>end)
a[10]=number;
else
{for(i=0;i<10;i++)
{ if(a[i]>number)
{temp1=a[i];
a[i]=number;
for(j=i+1;j<11;j++)
{temp2=a[j];
a[j]=temp1;
temp1=temp2;
}
break;
}
}
}
for(i=0;i<11;i++)
printf("m",a[i]);
}
==============================================================
【程序40】
題目:將一個數組逆序輸出。
1.程序分析:用第一個與最後一個交換。
2.程序源代碼:
#define N 5
main()
{ int a[N]={9,6,5,4,1},i,temp;
printf("\n original array:\n");
for(i=0;i printf("M",a[i]);
for(i=0;i {temp=a[i];
a[i]=a[N-i-1];
a[N-i-1]=temp;
}
printf("\n sorted array:\n");
for(i=0;i printf("M",a[i]);
}
【程序41】
題目:學習static定義靜態變數的用法
1.程序分析:
2.程序源代碼:
#include "stdio.h"
varfunc()
{
int var=0;
static int static_var=0;
printf("\40:var equal %d \n",var);
printf("\40:static var equal %d \n",static_var);
printf("\n");
var++;
static_var++;
}
void main()
{int i;
for(i=0;i<3;i++)
varfunc();
}
==============================================================
【程序42】
題目:學習使用auto定義變數的用法
1.程序分析:
2.程序源代碼:
#include "stdio.h"
main()
{int i,num;
num=2;
for (i=0;i<3;i++)
{ printf("\40: The num equal %d \n",num);
num++;
{
auto int num=1;
printf("\40: The internal block num equal %d \n",num);
num++;
}
}
}
==============================================================
【程序43】
題目:學習使用static的另一用法。
1.程序分析:
2.程序源代碼:
#include "stdio.h"
main()
{
int i,num;
num=2;
for(i=0;i<3;i++)
{
printf("\40: The num equal %d \n",num);
num++;
{
static int num=1;
printf("\40:The internal block num equal %d\n",num);
num++;
}
}
}
==============================================================
【程序44】
題目:學習使用external的用法。
1.程序分析:
2.程序源代碼:
#include "stdio.h"
int a,b,c;
void add()
{ int a;
a=3;
c=a+b;
}
void main()
{ a=b=4;
add();
printf("The value of c is equal to %d\n",c);
}
==============================================================
【程序45】
題目:學習使用register定義變數的方法。
1.程序分析:
2.程序源代碼:
void main()
{
register int i;
int tmp=0;
for(i=1;i<=100;i++)
tmp+=i;
printf("The sum is %d\n",tmp);
}
==============================================================
【程序46】
題目:宏#define命令練習(1)
1.程序分析:
2.程序源代碼:
#include "stdio.h"
#define TRUE 1
#define FALSE 0
#define SQ(x) (x)*(x)
void main()
{
int num;
int again=1;
printf("\40: Program will stop if input value less than 50.\n");
while(again)
{
printf("\40:Please input number==>");
scanf("%d",&num);
printf("\40:The square for this number is %d \n",SQ(num));
if(num>=50)
again=TRUE;
else
again=FALSE;
}
}
==============================================================
【程序47】
題目:宏#define命令練習(2)
1.程序分析:
2.程序源代碼:
#include "stdio.h"
#define exchange(a,b) { \ /*宏定義中允許包含兩道衣裳命令的情形,此時必須在最右邊加上"\"*/
int t;\
t=a;\
a=b;\
b=t;\
}
void main(void)
{
int x=10;
int y=20;
printf("x=%d; y=%d\n",x,y);
exchange(x,y);
printf("x=%d; y=%d\n",x,y);
}
==============================================================
【程序48】
題目:宏#define命令練習(3)
1.程序分析:
2.程序源代碼:
#define LAG >
#define SMA <
#define EQ ==
#include "stdio.h"
void main()
{ int i=10;
int j=20;
if(i LAG j)
printf("\40: %d larger than %d \n",i,j);
else if(i EQ j)
printf("\40: %d equal to %d \n",i,j);
else if(i SMA j)
printf("\40:%d smaller than %d \n",i,j);
else
printf("\40: No such value.\n");
}
==============================================================
【程序49】
題目:#if #ifdef和#ifndef的綜合應用。
1. 程序分析:
2.程序源代碼:
#include "stdio.h"
#define MAX
#define MAXIMUM(x,y) (x>y)?x:y
#define MINIMUM(x,y) (x>y)?y:x
void main()
{ int a=10,b=20;
#ifdef MAX
printf("\40: The larger one is %d\n",MAXIMUM(a,b));
#else
printf("\40: The lower one is %d\n",MINIMUM(a,b));
#endif
#ifndef MIN
printf("\40: The lower one is %d\n",MINIMUM(a,b));
#else
printf("\40: The larger one is %d\n",MAXIMUM(a,b));
#endif
#undef MAX
#ifdef MAX
printf("\40: The larger one is %d\n",MAXIMUM(a,b));
#else
printf("\40: The lower one is %d\n",MINIMUM(a,b));
#endif
#define MIN
#ifndef MIN
printf("\40: The lower one is %d\n",MINIMUM(a,b));
#else
printf("\40: The larger one is %d\n",MAXIMUM(a,b));
#endif
}
==============================================================
【程序50】
題目:#include 的應用練習
1.程序分析:
2.程序源代碼:
test.h 文件如下:
#define LAG >
#define SMA <
#define EQ ==
#include "test.h" /*一個新文件50.c,包含test.h*/
#include "stdio.h"
void main()
{ int i=10;
int j=20;
if(i LAG j)
printf("\40: %d larger than %d \n",i,j);
else if(i EQ j)
printf("\40: %d equal to %d \n",i,j);
else if(i SMA j)
printf("\40:%d smaller than %d \n",i,j);
else
printf("\40: No such value.\n");
}
【程序51】
題目:學習使用按位與 & 。
1.程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1
2.程序源代碼:
#include "stdio.h"
main()
{
int a,b;
a=077;
b=a&3;
printf("\40: The a & b(decimal) is %d \n",b);
b&=7;
printf("\40: The a & b(decimal) is %d \n",b);
}
==============================================================
【程序52】
題目:學習使用按位或 | 。
1.程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1
2.程序源代碼:
#include "stdio.h"
main()
{
int a,b;
a=077;
b=a|3;
printf("\40: The a & b(decimal) is %d \n",b);
b|=7;
printf("\40: The a & b(decimal) is %d \n",b);
}
==============================================================
【程序53】
題目:學習使用按位異或 ^ 。
1.程序分析:0^0=0; 0^1=1; 1^0=1; 1^1=0
2.程序源代碼:
#include "stdio.h"
main()
{
int a,b;
a=077;
b=a^3;
printf("\40: The a & b(decimal) is %d \n",b);
b^=7;
printf("\40: The a & b(decimal) is %d \n",b);
}
==============================================================
【程序54】
題目:取一個整數a從右端開始的4~7位。
程序分析:可以這樣考慮:
(1)先使a右移4位。
(2)設置一個低4位全為1,其餘全為0的數。可用~(~0<<4)
(3)將上面二者進行&運算。
2.程序源代碼:
main()
{
unsigned a,b,c,d;
scanf("%o",&a);
b=a>>4;
c=~(~0<<4);
d=b&c;
printf("%o\n%o\n",a,d);
}
==============================================================
【程序55】
題目:學習使用按位取反~。
1.程序分析:~0=1; ~1=0;
2.程序源代碼:
#include "stdio.h"
main()
{
int a,b;
a=234;
b=~a;
printf("\40: The a's 1 complement(decimal) is %d \n",b);
a=~a;
printf("\40: The a's 1 complement(hexidecimal) is %x \n",a);
}
==============================================================
【程序56】
題目:畫圖,學用circle畫圓形。
1.程序分析:
2.程序源代碼:
/*circle*/
#include "graphics.h"
main()
{int driver,mode,i;
float j=1,k=1;
driver=VGA;mode=VGAHI;
initgraph(&driver,&mode,"");
setbkcolor(YELLOW);
for(i=0;i<=25;i++)
{
setcolor(8);
circle(310,250,k);
k=k+j;
j=j+0.3;
}
}
==============================================================
【程序57】
題目:畫圖,學用line畫直線。
1.程序分析:
2.程序源代碼:
#include "graphics.h"
main()
{int driver,mode,i;
float x0,y0,y1,x1;
float j=12,k;
driver=VGA;mode=VGAHI;
initgraph(&driver,&mode,"");
setbkcolor(GREEN);
x0=263;y0=263;y1=275;x1=275;
for(i=0;i<=18;i++)
{
setcolor(5);
line(x0,y0,x0,y1);
x0=x0-5;
y0=y0-5;
x1=x1+5;
y1=y1+5;
j=j+10;
}
x0=263;y1=275;y0=263;
for(i=0;i<=20;i++)
{
setcolor(5);
line(x0,y0,x0,y1);
x0=x0+5;
y0=y0+5;
y1=y1-5;
}
}
==============================================================
【程序58】
題目:畫圖,學用rectangle畫方形。
1.程序分析:利用for循環控制100-999個數,每個數分解出個位,十位,百位。
2.程序源代碼:
#include "graphics.h"
main()
{int x0,y0,y1,x1,driver,mode,i;
driver=VGA;mode=VGAHI;
initgraph(&driver,&mode,"");
setbkcolor(YELLOW);
x0=263;y0=263;y1=275;x1=275;
for(i=0;i<=18;i++)
{
setcolor(1);
rectangle(x0,y0,x1,y1);
x0=x0-5;
y0=y0-5;
x1=x1+5;
y1=y1+5;
}
settextstyle(DEFAULT_FONT,HORIZ_DIR,2);
outtextxy(150,40,"How beautiful it is!");
line(130,60,480,60);
setcolor(2);
circle(269,269,137);
}
==============================================================
【程序59】
題目:畫圖,綜合例子。
1.程序分析:
2.程序源代碼:
# define PAI 3.1415926
# define B 0.809
# include "graphics.h"
#include "math.h"
main()
{
int i,j,k,x0,y0,x,y,driver,mode;
float a;
driver=CGA;mode=CGAC0;
initgraph(&driver,&mode,"");
setcolor(3);
setbkcolor(GREEN);
x0=150;y0=100;
circle(x0,y0,10);
circle(x0,y0,20);
circle(x0,y0,50);
for(i=0;i<16;i++)
{
a=(2*PAI/16)*i;
x=ceil(x0+48*cos(a));
y=ceil(y0+48*sin(a)*B);
setcolor(2); line(x0,y0,x,y);}
setcolor(3);circle(x0,y0,60);
/* Make 0 time normal size letters */
settextstyle(DEFAULT_FONT,HORIZ_DIR,0);
outtextxy(10,170,"press a key");
getch();
setfillstyle(HATCH_FILL,YELLOW);
floodfill(202,100,WHITE);
getch();
for(k=0;k<=500;k++)
{
setcolor(3);
for(i=0;i<=16;i++)
{
a=(2*PAI/16)*i+(2*PAI/180)*k;
x=ceil(x0+48*cos(a));
y=ceil(y0+48+sin(a)*B);
setcolor(2); line(x0,y0,x,y);
}
for(j=1;j<=50;j++)
{
a=(2*PAI/16)*i+(2*PAI/180)*k-1;
x=ceil(x0+48*cos(a));
y=ceil(y0+48*sin(a)*B);
line(x0,y0,x,y);
}
}
restorecrtmode();
}
==============================================================
【程序60】
題目:畫圖,綜合例子。
1.程序分析:
2.程序源代碼:
#include "graphics.h"
#define LEFT 0
#define TOP 0
#define RIGHT 639
#define BOTTOM 479
#define LINES 400
#define MAXCOLOR 15
main()
{
int driver,mode,error;
int x1,y1;
int x2,y2;
int dx1,dy1,dx2,dy2,i=1;
int count=0;
int color=0;
driver=VGA;
mode=VGAHI;
initgraph(&driver,&mode,"");
x1=x2=y1=y2=10;
dx1=dy1=2;
dx2=dy2=3;
while(!kbhit())
{
line(x1,y1,x2,y2);
x1+=dx1;y1+=dy1;
x2+=dx2;y2+dy2;
if(x1<=LEFT||x1>=RIGHT)
dx1=-dx1;
if(y1<=TOP||y1>=BOTTOM)
dy1=-dy1;
if(x2<=LEFT||x2>=RIGHT)
dx2=-dx2;
if(y2<=TOP||y2>=BOTTOM)
dy2=-dy2;
if(++count>LINES)
{
setcolor(color);
color=(color>=MAXCOLOR)?0:++color;
}
}
closegraph();
}

Ⅷ 求教一個C語言關於文件的編程題

把file1.txt 放在編譯好的exe文件所在文件夾。代碼如下:

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

#defineMAXWORDS100

//qsort用到的字元串比較函數,用來比較單詞
intcompare(constvoid*pa,constvoid*pb)
{
returnstrcmp((char*)pa,(char*)pb);
}

intmain()
{

FILE*fp1=NULL,*fp2=NULL;
fp1=fopen("file1.txt","r");
fp2=fopen("file2.txt","wt");
if(!fp1||!fp2){
printf("Erroropenfile! ");
exit(-1);
}

charWords[MAXWORDS][64]={NULL};
charstr[64];
inti,cnt=0;//cnt保存了實際讀入的單詞個數,最多為MAXWORDS個
printf("file1content: ");
for(i=0;!feof(fp1)&&i<MAXWORDS;i++)
{
fscanf(fp1,"%s",str);
strcpy(Words[i],str);
Words[i][strlen(str)]='';
printf("%s",Words[i]);
}
cnt=i;
qsort(Words[0],cnt,sizeof(char)*64,compare);//排序
//寫入文件2
i=0;
printf(" file2(排序後)content: ");
while(i<cnt)
{
printf("%s",Words[i]);
fprintf(fp2,"%s",Words[i++]);
}

fclose(fp1);
fclose(fp2);
return0;
}

Ⅸ C語言的一道數據文件的編程題

void readBytes(FILE *fp,long int nOffset,int nCount) //a
{ int i;
char c;
fseek(fp,nOffset,SEEK_SET);
for ( i=0;i<nCount;i++ ) { fread(&c,1,1,fp); printf("%c",c); }
printf("\n");
}
void readBytes(FILE *fp,long int nOffset,int nCount,char *buffer) //b
{ fseek(fp,nOffset,SEEK_SET);
fread(buffer,1,nCount,fp);
}

Ⅹ 經典C語言程序例子

題目01:在一個已知的字元串中查找最長單詞,假定字元串中只含字母和空格,空格用來分隔不同的單詞。

(10)c語言編程題經典文件擴展閱讀:

C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。

盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。

閱讀全文

與c語言編程題經典文件相關的資料

熱點內容
極線殺手木屋女演員 瀏覽:616
寧波程序員接私活小程序 瀏覽:492
小六壬pdf 瀏覽:14
怎麼通過快捷指令隱藏手機app 瀏覽:610
方舟手游如何辨別優質伺服器 瀏覽:117
pdf林徽因傳 瀏覽:528
國產區小電影網址 瀏覽:102
西班牙大尺度男男 瀏覽:609
消先的眼角膜電影 瀏覽:434
編譯原理課設項目簡介 瀏覽:921
日本《失樂園》無刪減 瀏覽:227
更新最快的電視劇網站 瀏覽:597
啟動app的廣告怎麼關 瀏覽:850
非sp文中的sp情節的小說 瀏覽:76
女主是被拐賣到大山的小說 瀏覽:858
哆啦a夢美人魚電影 瀏覽:597
舊版本蝌蚪短視頻app怎麼不能 瀏覽:458
電影劇情里有個老頭在雨里騎單車有防 瀏覽:950
日本歐美推理片電影 瀏覽:75
主角穿越到紅軍長征 瀏覽:915