週報2【C語言】【Web安全】
週報2
1.輸入一個整數x,如果x是奇數,輸出x,如果x是偶數,輸出比x大的第一個奇數。
第一種最容易想到的程式碼:
#include <stdio.h>
int main(void)
{
int x;
scanf("%d",&x);
if(x%2){
printf("%d",x);
}
else{
printf("%d",x+1);
}
return 0;
}
優化(省去else的執行語句,但改變了x的值):
#include <stdio.h>
int main(void)
{
int x;
scanf("%d",&x);
if(!(x%2)){
x+=1;
}
printf("%d",x);
return 0;
}
再優化(省去if語句,沒有改變x的值):
#include <stdio.h>
int main(void)
{
int x;
scanf("%d",&x);
printf("%d",x+!(x%2));
return 0;
}
#include <stdio.h>
#include <math.h>
#define MAXN 10
double f(int n,double a[],double x)
{
int i;
double add=0.0;
for(i=0;i<n+1;i++){
add+=a[i]*pow(x,i);
}
return add;
}
int main(void)
{
int n,i;
double a[MAXN],x;
scanf("%d%lf",&n,&x);
for(i=0;i<n+1;i++){
scanf("%lf",&a[i]);
}
printf("%.1f",f(n,a,x));
return 0;
}
本題要求統計一個整型序列中出現次數最多的整數及其出現次數。
#include <stdio.h>
int main(void)
{
int n,i,j,sum,x,m;
scanf("%d",&n);
int a[n];
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0,m=0;i<n;i++)
{
sum=0;
for(j=0;j<n;j++)
{
if(a[i]==a[j])
{
sum++;
}
}
if(sum>m)
{
m=sum;
x=i;
}
}
printf("%d %d",a[x],m);
return 0;
}
本題要求編寫程式,對順序讀入的n個整數,順次計算後項減前項之差,並按每行三個元素的格式輸出結果。
輸入的第一行給出正整數n(1<n≤10)。隨後一行給出n個整數,其間以空格分隔。
順次計算後項減前項之差,並按每行三個元素的格式輸出結果。數字間空一格,行末不得有多餘空格。``
#include <stdio.h>
int main(void)
{
int n,i,cnt=1;
scanf("%d",&n);
int a[10];
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
{
a[i]=a[i+1]-a[i];
}
printf("%d",a[0]);
for(i=1;i<n-1;i++)
{
if(cnt==3)
{
printf("\n%d",a[i]);
cnt=0;
}
else
printf(" %d",a[i]);
cnt++;
}
return 0;
}
有序數列插入整數後依然有序輸出
#include <stdio.h>
int main(void)
{
int n,i,j;
scanf("%d",&n);
int a[n];
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
int x;
scanf("%d",&x);
i=0;
while(a[i]<x&&i<n)
i++;
for(j=n-1;j>i-1;j--)
{
a[j+1]=a[j];
}
a[i]=x;
for(i=0;i<n+1;i++)
printf("%d ",a[i]);
return 0;
}
本題要求編寫程式,找出給定的n個數中的最大值及其對應的最小下標(下標從0開始)。
#include <stdio.h>
int main(void)
{
int n,i,k;
scanf("%d",&n);
int a[10];
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
{
if(a[0]<a[i])
{
a[0]=a[i];
k=i;
}
else if(a[0]==a[i])
{
if(k>i)
{
k=i;
}
}
}
printf("%d %d",a[0],k);
return 0;
}
輸出滿足條件的的3位數,要求從小到大,每行6個整數。整數間以空格分隔,但行末不能有多餘空格。
給定不超過6的正整數A,考慮從A開始的連續4個數字。請輸出所有由它們組成的無重複數字的3位數。
234 235 243 245 253 254
324 325 342 345 352 354
423 425 432 435 452 453
523 524 532 534 542 543
#include <stdio.h>
int main(void)
{
int a,x,y,z,cnt=0;
scanf("%d",&a);
for(x=a;x<=a+3;x++)
{
for(y=a;y<=a+3;y++)
{
for(z=a;z<=a+3;z++)
{
if(x!=y&&x!=z&&y!=z)
{
printf("%d%d%d",x,y,z);
cnt++;
if(cnt==6)
{
printf("\n");
cnt=0;
}
else
printf(" ");
}
}
}
}
return 0;
}
Web安全深度剖析學習:
第1章 Web安全簡介
1.網際網路中伺服器如何被攻擊者入侵:
必需條件:攻擊者的計算機與伺服器必須能夠正常通訊
伺服器提供各種服務供客戶使用,是依靠埠(或者說計算機提供的服務)與客戶端通訊的,攻擊者入侵也是靠埠
2.Web強大的要點:
優秀的Web應用程式的設計者設計程式,程式語言將這些設計變為真實的存在,與資料庫連線,讓資料庫儲存好這些資料,Web容器作為終端解析使用者請求和指令碼語言。
3.HTML文件:
當使用者通過統一資源定位符(URL)訪問Web時,最終看到的是Web容器處理後的內容,即HTML文件。
4.攻擊者在滲透伺服器時的三種直接對目標下手的手段:
(1).C段滲透:
攻擊者通過滲透同一網段內的一臺主機對目標主機進行ARP等手段的滲透。
(2).社會工程學
(3).Services:直接針對服務進行溢位
第2章 深入HTTP請求流程
1.HTTP協議解析:
HTTP(HyperText Transfer Protocol)即超文字傳輸協議,是一種詳細規定了瀏覽器和全球資訊網伺服器之間互相通訊的規則,它是全球資訊網交換資訊的基礎,它將允許HTML(超文字標記語言)文件從Web伺服器傳送到Web瀏覽器。
2.發起HTTP請求:
(1).瀏覽器位址列輸入URL(統一資源定義符)
URL也被稱為網頁地址,是網際網路標準的地址。
格式:協議://伺服器IP[:埠]/路徑/[?查詢]
例如:http://www.xxser.com/post/httpxieyi.html
(2)Linux系統中的curl命令
在Windows中,也可用curl.exe工具(不自帶,需下載)來發起請求,通過curl+URL命令
3.HTTP協議詳解:
HTTP是一種無狀態協議,無狀態是指Web瀏覽器與Web伺服器之間不需要建立持久的聯絡,這意味著當一個客戶端向伺服器發出請求,然後Web伺服器返回響應(Response),連線就被關閉了,在伺服器端不保留連線的有關資訊。也就是說,HTTP請求只能由客戶端發起,而伺服器不能主動向客戶端傳送資料。
相關文章
- 重新學C語言2C語言
- 標準C語言2C語言
- 高階C語言2C語言
- C語言作業2C語言
- 分析C語言的宣告(2)C語言
- Jiva語言學習報告第三週
- Java語言學習報告第七週Java
- C語言進階[2]:字串常量C語言字串
- C語言模擬試題2C語言
- 用C語言製作Web伺服器C語言Web伺服器
- C語言 C語言野指標C語言指標
- C語言---“C語言 誰與爭鋒?”C語言
- C_Primer第2章 C語言概述C語言
- 程式語言安全性排行榜:Ruby最佳,C語言漏洞最多?C語言
- 用C語言寫的程式不安全C語言
- C語言常見使用問題2C語言
- C語言基礎-2、字元型別C語言字元型別
- C語言C語言
- 聊聊C語言/C++—程式和程式語言C語言C++
- c語言程式設計--實驗報告一C語言程式設計
- c語言程式設計——實驗報告六C語言程式設計
- # c語言程式設計——實驗報告一C語言程式設計
- c語言程式設計——實驗報告一C語言程式設計
- c語言程式設計——實驗報告二C語言程式設計
- C語言程式設計—實驗報告四C語言程式設計
- C語言程式設計-實驗報告4C語言程式設計
- c語言程式實驗——實驗報告五C語言
- c語言程式實驗————實驗報告十C語言
- c語言程式實驗————實驗報告十二C語言
- C語言字串C語言字串
- C語言: returnC語言
- C語言(一)C語言
- C語言概述C語言
- c語言 %pC語言
- 字串(C語言)字串C語言
- C語言程式C語言
- CUDA C語言C語言
- C語言 typedefC語言