❶ 潭浩強c語言設計.(三版)第5 章里的一道習題,幫我解一下
按我的理解這題在了解圓錐體是由一個直角三角形旋轉360度而成之後就只涉及到一些初中的知識(兩點距離公式,平行線性質),最後的v即為所求
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
double len( double x1, double y1, double x2, double y2 );
void main()
{
double x = 0.0;
double y = 0.0;
int st = 0;
double h = 10.0;
double c = 0.0;
double r = 1.0;
double v = 0;
scanf("%lf %lf", &x, &y );
if( ( c = len( 2, 2, x, y ) ) < r ) st = 1;
else if( ( c = len( 2,-2, x, y ) ) < r ) st = 1;
else if( ( c = len( -2, -2, x, y ) ) < r ) st = 1;
else if( ( c = len( -2, 2, x, y ) ) < r ) st = 1;
else v = 0;
if( st != 0 )
{
v = ( r-c )*h / r;
}
printf("v = %lf\n",v);
}
double len( double x1, double y1, double x2, double y2 )
{
return sqrt( (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) );
}
❷ c語言程序設計的黃容、趙毅主編
1.1一個C語言程序
1.2計算機程序設計與程序設計語言
1.2.1程序與指令
1.2.2程序設計語言
1.3C語言的發展與應用現狀
1.4C語言的特點
1.4.1C語言的優勢
1.4.2如何學習C語言程序設計
1.4.3C語言的語法特點
1.4.4C語言的結構特點
1.4.5C語言的編譯與編程環境
習題
第2章用C語言編寫簡單程序
2.1在屏幕上顯示自定義文字「Hello World!」
2.1.1程序解析
2.1.2程序的三種結構
2.2攝氏溫度與華氏溫度換算(簡單的順序結構程序的編寫)
2.2.1程序解析
2.2.2常量、變數和數據類型
2.2.3賦值運算和算術運算
2.2.4格式化輸出函數printf
2.3判斷一元二次方程是否有實數解(簡單的分支結構程序的編寫)
2.3.1程序解析
2.3.2關系運算
2.3.3if…else二分支語句
2.3.4格式化輸入函數scanf
2.4計算自由落體反彈高度和總距離(簡單的循環結構程序
——for語句的編寫)
2.4.1指定次數的循環程序設計
2.4.2for語句
2.4.3計算自由落體反彈高度和總距離
2.4.4程序解析
習題
第3章分支結構程序設計
3.1從鍵盤輸入一個控制命令字元,判斷輸入是否正確
3.1.1程序解析
3.1.2字元類型
3.1.3邏輯運算符和邏輯表達式
3.1.4字元型數據的輸入和輸出
3.2分支結構程序設計——求解一元二次方程
3.2.1程序解析
3.2.2if 語句的三種形式
3.2.3if 語句的嵌套
3.3模擬工程式控制制,根據指令進行相應的操作
3.3.1程序解析
3.3.2switch語句
習題
第4章循環結構程序設計
4.1輸入一批學生的成績,統計平均分
4.1.1程序解析
4.1.2while語句
4.1.3數列問題求解
4.2用牛頓迭代法求方程2x3-4x2+3x-6=0的根
4.2.1程序解析
4.2.2do…while 語句
4.2.3循環語句的選擇
4.3列印九九乘法表
4.3.1程序解析
4.3.2循環的嵌套
4.4求素數
4.4.1程序解析
4.4.2用break語句和continue語句改變循環狀態
4.5復雜循環結構程序設計
4.5.1傅里葉級數逼近
4.5.2數據處理與回歸分析
習題
第5章C語言的數據類型和表達式
5.1C語言的基本數據類型
5.2常量和變數
5.2.1常量
5.2.2變數
5.3運算符和表達式
5.3.1算術運算符和算術表達式
5.3.2強制類型轉換運算符
5.3.3自增、自減運算符
5.3.4賦值運算符和賦值表達式
5.3.5關系運算符和表達式
5.3.6邏輯運算符和表達式
5.3.7條件表達式
5.3.8逗號表達式
5.4綜合程序設計案例
5.5演算法與程序設計
習題
第6章數組
6.1排序問題
6.1.1程序解析
6.1.2一維數組的定義和引用
6.1.3一維數組的初始化
6.1.4使用一維數組編程
6.2找出矩陣中最大值所在的位置
6.2.1程序解析
6.2.2二維數組的定義和引用
6.2.3二維數組的初始化
6.3數據通信過程中的信息加密問題
6.3.1程序解析
6.3.2一維字元數組
6.3.3字元串處理
習題
第7章函數
7.1用函數求幾何圖形的面積
7.1.1程序解析
7.1.2函數的定義
7.1.3函數的聲明
7.1.4函數的調用
7.2用函數求Fibonacci數列
7.2.1程序解析
7.2.2形式參數與實際參數
7.2.3函數的返回值
7.2.4值傳遞與地址傳遞
7.3變數與函數
7.3.1局部變數和全局變數
7.3.2變數的存儲類別
7.3.3函數的遞歸調用——求n!
習題
第8章指針及其應用
8.1替代用變數名引用數據的新方法
8.1.1指針概念的引入
8.1.2定義指針變數
8.1.3指針與變數的關系
8.1.4為指針變數賦值及指針變數的初始化
8.1.5利用指針變數進行數據處理
8.2指針和一維數組
8.3利用被調函數對主調函數中的數組元素進行冒泡排序
8.3.1指針變數作為函數參數
8.3.2數組名作為函數的參數
8.4字元串和字元指針
8.4.1字元串常量的值
8.4.2使用字元指針處理字元串的程序舉例
習題
第9章結構體、共用體和枚舉類型
9.1按價格排序輸出一組待售汽車的信息
9.1.1程序解析
9.1.2結構體類型的概念和定義
9.1.3結構體類型變數的定義
9.1.4結構體類型變數的使用
9.1.5結構體變數作為函數參數
9.2編寫一個書籍管理程序,顯示所有書籍信息
9.2.1程序解析
9.2.2結構體數組
9.2.3結構體數組的應用實例
9.3共用體——每個時刻只能有一個成員佔用內存的「結構體」
9.3.1程序解析
9.3.2共用體類型的定義
9.3.3共用體變數的定義
9.3.4共用體變數的引用
9.4讓變數的取值局限於特定范圍
9.4.1枚舉類型的定義
9.4.2枚舉變數的定義
9.4.3枚舉類型的應用
9.5隨心所欲地安排數據類型名——typedef的使用方法
9.5.1利用typedef定義類型名
9.5.2typedef的典型用法
習題
第10章宏定義與文件包含
10.1宏定義
10.1.1程序解析
10.1.2無參宏定義
10.1.3帶參宏定義
10.2文件包含
10.3條件編譯
習題
第11章文件
11.1將「歡迎卓越工程師」寫入文件
11.1.1程序解析
11.1.2C文件概述
11.1.3文件指針
11.1.4文件的打開與關閉
11.2文件的讀寫——讀取工程文件
11.2.1程序解析——讀取工程文件
11.2.2字元讀寫函數fgetc和fputc
11.2.3字元串讀寫函數fgets和fputs
11.2.4數據塊讀寫函數fread和fwrite
11.2.5格式化讀寫函數fscanf和fprintf
11.3文件的隨機讀寫
11.3.1改變文件位置指針函數fseek( )
11.3.2位置指針重返文件頭函數rewind( )
11.3.3位置指針當前值函數 ftell( )
11.3.4文件的隨機讀寫
11.4文件檢測函數
11.4.1文件結束檢測函數feof函數
11.4.2讀寫文件出錯檢測函數ferror函數
11.4.3文件出錯標志和文件結束標志置0函數clearerr函數
習題
附錄AASCII編碼表
附錄BC語言常用的庫函數
附錄CC語言運算符優先順序表
參考文獻
❸ C語言題目解答~~
答案為:(OON,C)
首先,str是一個二維字元串數組,保存著"SUN""MOON""STAR""X"四個字元串,
*(str+1)表示str[1]的首地址,即"MOON"
*(str+1)+1後地址後移一位,列印的是"OON"
*(str+2)表示str[1]的首地址,即"STAR"
(*(st+2)+2)表示str[2][2]的地址,即'A'的地址,而*(*(st+2)+2)表示取出了這個字元,這個表達式的值就是'A'。而最後一個+2表示將"A"的ASCII碼+2,即後移2位,就是'C'
❹ c語言程序設計習題三
1、r!=0 r=m%n
2、s=s+f(i)
3、i<n a[i] max
❺ C語言習題,請高人指導解答!
1. sizeof(float)是(B)。
A. 雙精度型表達式
B.一個整型表達式
C. 一個函數調用
D. 一個不合法的表達式
滿分:5 分
2. 對於條件表達式(M)?(a++):(a--),其中的表達式M等價於(B)。
A. M==0
B. M==1
C. M!=0
D. M!=1
滿分:5 分
3. 若有定義:intx=7;floata=2.5,b=4.7;則表達式a+x%3*(int)(a+b)%2/4的值是(A)。
A. 2.5
B. 2.75
C. 3.5
D. 0
滿分:5 分
4. 下面四個選項中,均是C語言關鍵字的選項是(B)。
A. auto enumin clude
B. switch typedef continue
C. signenionscanf
D. if struct type
滿分:5 分
5. 下列關於switch語句和break語句的結論中,只有(B)是正確的。
A.break語句是switch語句的一部分
B. 在switch語句中可以根據需要使用或不使用break語句
C. 在switch語句中必須使用break語句
D. "以上三個結論有兩個是正確的"
滿分:5 分
6. 在x值處於-2到2,4到8時值為「真」,否則為「假」的表達式是(全都不是)。
A. (2>x>-2)||(4>x>8)
B. ((x<=-2)||(x>=2)||((x>4)||(x>=8))
C. (x<2)(x>=-2)(x>4)(x<8)
D. (x>-2)(x>4)||(x<8)(x<2)
滿分:5 分
7. 以下是正確的C語言標識符是(B)。
A. #define
B. _123
C. %d
D. \n
滿分:5 分
8. 以下敘述中不正確的是(B)
A. 在C程序中,調用函數時,只能把實參的值傳送給形參,形參的值不能傳送給實參
B. 在C程序的函數中,最好使用全局變數
C. 在C程序中,形參只是局限於所在函數
D. 在C程序中,函數名的存儲類別為外部
滿分:5 分
9. 已知字母A的ASCII碼為(65)10,變數ch1為字元型,則執行語句ch1='A'+'6'-'3';後,ch1中的值為(B)。
A. D
B. 68
C. 一個不確定的值
D. C
滿分:5 分
10. 若有定義:intA[3][4];能表現數組元素A[1][1]的是(沒有!C有點像,是不是寫錯了?(*(A+1))[1]正確)
A. (A[1]+1)
B. *(A[1][1])
C. (*(A+1)[1])
D. *(A+5)
滿分:5 分
11. 設int類型的數據長度為2個位元組,則unsignedint類型數據的取值范圍是(B)。
A. 0~255
B. 0~65535
C. -32768~+32767
D. -256~+255
滿分:5 分
12. 若x為float型變數,則以列程序段結果是(B)x=1234.6789;printf(「%-2.1f」,x);
A. 輸出格式描述符的域寬度不夠,不能輸出
B. 輸出為1234.7
C. 輸出為1234.6
D. 輸出為-1234.6
滿分:5 分
13. 下面四個選項中,均是合法轉義字元的選項是(A)。
A. \'' '\\' '\n'
B. "\''\017''\""'"
C. \018''\f''xab'
D. \\0''\101''xlf'
14. 有兩個字元數組a、b,則以下正確的輸入語句是(沒有正確的)。
A. gets(a,b);
B. "scanf(""%s%s"",a,b);"
C. "scanf(""%s%s"",a,b);"
D. "gets(""a""),gets(""b"");"
15. 下列四組選項中,均不是C語言關鍵字的選項是(A)。
A. define IFtype
B. get cchar printf
C. include scanf case
D. whilegopow
❻ C語言 編程考試題,求解答。
這些都是一些很簡單的題目。我現在沒有事做,就幫你寫寫吧。等著,我在編。
這是第二題的程序:
#include<stdio.h>
voidmain()
{
intyear;
printf("請輸入年份:");
scanf("%d",&year);
if((year%400==0)||(year%4==0&&year%100!=0))
printf("%d年是閏年。",year);
else
printf("%d年不是閏年。",year);
}
這是第三題的程序:
#include<stdio.h>
intmax(inta,intb)
{
intt;
t=a<b?a:b;
returnt;
}
floatarea(intr)
{
returnr*r*3.1415926;
}
voidmain()
{
inta,b;
intr;
printf("請輸入2個數值:");
scanf("%d%d",&a,&b);
r=max(a,b);
printf("半徑為%d的園的面積為%f。",r,area(r));
return;
}
以下是第四題的程序:
#include<stdio.h>
intreverse(inta)
{
intsum=0;
while(a>0)
{
sum=sum*10+a%10;
a/=10;
}
returnsum;
}
voidmain()
{
inta;
printf("請輸入數值:");
scanf("%d",&a);
printf("數值%d逆序輸出為%d。",a,reverse(a));
return;
}
以下是第五題的程序:
#include<stdio.h>
voidmain()
{
inta[10]={0,1,2,3,4,5,6,7,8,9};
intsum=0;
inti;
for(i=0;i<10;i++)
sum+=a[i];
printf("用數組計算的結果為%d ",sum);
sum=0;
for(i=0;i<10;i++)
sum+=*(a+i);
printf("用指針計算的結果為%d ",sum);
return;
}
以下是第六題的程序:
#include<stdio.h>
#include<string.h>
voidmain()
{
chara[20];
inti,j;
printf("Pleaseinput:");
scanf("%s",a);
j=strlen(a);
for(i=0;i<j;i++)
if(a[i]>='a'&&a[i]<='z')
a[i]-=32;
printf("變成大寫輸出為:%s",a);
return;
}
以下是第七題的程序:
#include<stdio.h>
#include<string.h>
structComputer
{
charname[10];
intsum;
};
voidmain()
{
inti;
structComputerpc[3]={{"lenovo",0},{"fondon",0},{"dell",0}};
charbuff[10];
for(i=0;i<10;i++)
{
printf("請輸入電腦的名字:");
scanf("%s",buff);
if(strcmp(pc[0].name,buff)==0)
pc[0].sum++;
elseif(strcmp(pc[1].name,buff)==0)
pc[1].sum++;
elseif(strcmp(pc[2].name,buff)==0)
pc[2].sum++;
else
printf("輸入錯誤,此票作廢! ");
}
for(i=0;i<3;i++)
printf("電腦%s的得票為%d. ",pc[i].name,pc[i].sum);
return;
}
全部寫玩了,全部測試過,完全可以編譯,沒有問題。
滿意請採納,謝謝。
❼ c語言程序設計課後習題解答與實驗指導
#include<stdio.h>
int max(int x,int y,int z)
{
int t;
t=x>y?x:y;
t=t>z?t:z;
return(t);
}
int min(int x ,int y,int z)
{
int t;
t=x<y?x:y;
t=t<z?t:z;
return(t);
}
int aver(int x ,int y,int z)
{
int t;
t=(x+y+z)/3;
return(t);
}
void main()
{ int x,y,z,a,b,c;
scanf("%d,%d,%d",&x,&y,&z);
a=(*max)(x,y,z);
b=(*min)(x,y,z);
c=(*aver)(x,y,z);
printf("%d,%d,%d\n",a,b,c);
}
建議改成:
#include<stdio.h>
int max(int x,int y,int z)
{
int t;
t=x>y?x:y;
t=t>z?t:z;
return(t);
}
int min(int x ,int y,int z)
{
int t;
t=x<y?x:y;
t=t<z?t:z;
return(t);
}
float aver(int x ,int y,int z)
{
int t;
t=(float)((x+y+z)/3.0);
return(t);
}
void main()
{ int x,y,z,a,b;float c;
scanf("%d,%d,%d",&x,&y,&z);
a=(*max)(x,y,z);
b=(*min)(x,y,z);
c=(*aver)(x,y,z);
printf("max=%d\nmin=%d\naver=%g\n",a,b,c);
}