2014.3.12-C語言小測試

測試代碼:

?

學號:14020491.請實現一個函數,功能為使用循環輸出以下的圖案void print_alpha(int n)
{int i, j;for(i=0;i<n;++i){for(j=0;j<=i;++j)printf("%c", 'A'+ j);printf("\n");}
}2.請實現一個函數,功能為刪除數組指定位置的元素void delete(int *arr, int index, int len){int i;for(i=index;i<len;++i)arr[i] = arr[i+1];arr[len-1] = 0;--len;
}3.請實現一個函數,功能為使用選擇排序對數組進行排序void sortarr(int *arr, int len){int i, j, min, tmp;for(i=0;i<len-1;++i){min = i;for(j=i+1;j<len;++j)if(arr[min] > arr[j]){int tmp;tmp = arr[min];arr[min] = arr[j];arr[j] = tmp;}}
}4.請實現一個函數,功能為將一個數插入到一個有序的數組中void insert(int *arr, int n, int len){int i, key;++len;for(i=0;i<len;++i)if(n > arr[i])continue;else{key = i;break;}for(i=len-1;i>=key;--i)arr[i+1] = arr[i];arr[key] = n;
}5. 請實現一個函數,功能和系統的strcpy函數相似void mystrcpy(char *dst, const char* src){int i;for(i=0;(dst[i] = src[i])!='\0'; ++i);
}6. 請實現一個函數,功能為輸入一個字符串,找出其中長度最大的單詞。要求從鍵盤輸入一行字符,最后打印出長度最大的字符串
輸入:when i was young i'd listen to the radio waiting for my favorite songs
輸出:favorite
'
void show_string(char a[]){int i,j;int tmp, max, tmax, mmp;i = j = mmp = tmp = max = tmax = 0;while(a[i]!='\0'){if(isalpha(a[i])){tmp = i;for(;isalpha(a[i]);++i){tmax = i-tmp;if(tmax > max){max = tmax;mmp = tmp;}}}else{tmp = tmax = 0;++i;}}max++;for(i=mmp;max--;++i)printf("%c", a[i]);printf("\n");
}7.請實現一個函數,功能為顯示一個整數的二進制void binshow(int num, int len)
{int i = 0;int dd = 0;for (i=len-1; i>=0; --i){dd = num >> i & 1;  printf("%d", dd);}printf("\n");
}8.請實現一個函數,功能為統計字符串中的單詞個數int countword(char *str){int i, cnt;i = cnt = 0;while(str[i] != '\0'){if(isalpha(str[i]) && (!isalpha(str[i+1])) )++cnt;++i;}return cnt;
}9.請實現一個函數,功能和系統的strrchr函數相同char *mystrrchr(char *str, int c){char *pre = 0;for(;*str!='\0';str++)if(*str == c) pre = str;return pre;
}10.請實現一個函數:根據用戶指定的行數打印出對應行數的楊輝三角void yangHuiSanJiao(int n){int a[100][100];int i, j;a[0][1] = 1;for(i=1;i<=n;++i){for(j=1;j<=i;++j){a[i][j] = a[i-1][j-1] + a[i-1][j];if(j == 1)printf("%d", a[i][j]);else printf(" %d", a[i][j]);}printf("\n");}
}11.請實現一個函數,功能為將一個新節點添加到鏈表的末尾typedef struct node *link;
typedef struct node{int id;int data;struct node *next;
}Node;void append(struct node *head, int id, int data){link p = head;link y = malloc(sizeof(Node));y->id = id;y->data = data;while(p->next) p = p->next;y->next = p->next;p->next = y;
}12.請實現一個函數,功能為求一個由10個整數組成的數組中的所有遞增和遞減序列的個數,
并且輸出所有的遞增和遞減序列
例如:   
輸入:1 10 8 5 9 3 2 6 7 4   
輸出:6   
對應的遞增或遞減子序列為:   1 10    10 8 5    5 9   9 3 2   2 6 7void xulie(int s[]){int i, j, mark;mark = 0;i = 0;int cnt = 0;int m = 0;int n = 0;for(j=0;s[j]!='\0';++j){while(s[j] > s[j+1]){n = 1;++j;}if(n){cnt++;n = 0;}while(s[j] < s[j+1]){m = 1;++j;}if(m){cnt++;m = 0;}}printf("%d\n", cnt);cnt = 0;while(i<10){while(s[i] < s[i+1] && i<10){mark = 0;printf("%d ", s[i]);++i;}if(i==10) --i;if(mark == 0 ){if(i<10)printf("%d\n", s[i]);else printf("\n");mark = 1;++i;}--i;if(i==10) break;while(s[i] > s[i+1] && i<10){mark = 0;printf("%d ", s[i]);++i;}if(mark == 0){if(i<10)printf("%d\n", s[i]);else printf("\n");mark = 1;++i;}if(i==10) break;--i;}
}二.問答題(2分/題,共10分)
1.請簡述你所了解的C語言的特點答:簡潔,運行速度快,是用匯編來構造的語言,夠穩定,Linux系統內核大多數都是用C語言來構造,內存需要自己回收,可以直接控制內存,因為有指針,可能會導致程序的不安全,畢竟程序員不是神,但是自由,可以隨意操控內存變量,雖說沒有JAVA安全,但那是對于菜鳥而言,C語言的安全程度是針對程序員的變成能力而言,鍛煉我們縝密的思維,C語言是面向過程語言。
2.談談你對C語言內存管理的認識答: C語言內存管理分為堆、棧、代碼段、擴展段、全局變量區、靜態池,堆申請過的內存要及時回收,系統沒有自動幫你回收的機制,因為可回收,所以可以大量申請堆內存空間,而棧不會及時回收,所以不會申請很多空間。
3.談談你對C語言中數據(各種常量,變量,函數參數,字符串)的存儲認識答: 常亮存取在全局變量區,變量存取在棧中,函數參數存取在棧中,用完直接釋放不需要手動釋放,字符串看如果存取,如果是動態分配就存取在堆中,如果直接聲明,就存取在棧中。
4.談談你再解決一個編程問題時使用的方法和技巧答:編程的時候,經常遇到一些bug,很難去調試,所以就利用gdb 這個強大的調試工具,去調試我們很難找出bug的C程序,利用好調試軟件會讓我們更輕松的去編程。
5.列舉你學過的編程語言,談談你對這些語言的認識答: 
JAVA 雖然足夠安全,那是因為指針被封裝了,導致內存不會輕易被修改,但是不夠自由,不如C靈活,而且代碼足夠長,不簡潔。只是應用層開發語言。
C++  雖然足夠強大,面向對象語言,但是由于C++的可操控性太強,不是我們一般程序員能駕馭的。很多bug十分難調,沒有幾年編程經驗,很難靈活的使用C++ 去搞大工程的項目,如果只是會語法,那只是表面,真正的C++強大之處沒有幾十年的經驗,無法深深體會這門語言的精華所在
PYTHON 雖然足夠簡潔,但是由于是用C來開發的腳本語言,不可改變的速度慢,做大型項目,會受到腳本語言的限制,速度太慢,無法讓客戶體驗其安全性,但是最大的優點是語言簡潔,功能強大,開發效率極其高,語法比C簡潔,開發和lips速度相提并論,如果在Linux下寫一些不要求速度的腳本,那python是不二人選

?

轉載于:https://www.cnblogs.com/firstrate/p/3597147.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/376067.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/376067.shtml
英文地址,請注明出處:http://en.pswp.cn/news/376067.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

seqlist插入java_大話數據結構(五)(java程序)——順序存儲結構的插入與刪除...

獲得元素操作對于線性表的順序存儲結構來說&#xff0c;我們要實現getElement操作&#xff0c;即將線性表的第i個位置元素返回即可插入操作插入算法思路&#xff1a;1、如果插入位置不合理&#xff0c;拋出異常2、如果插入表的長度大于等于數組長度&#xff0c;則拋出異常或動態…

142. Linked List Cycle II

Given a linked list, return the node where the cycle begins. If there is no cycle, return null. Follow up:Can you solve it without using extra space? Craking interview書上原題&#xff0c;快慢指針&#xff0c;話題較簡單說明。 /** * Definition for singly-lin…

無法嵌入互操作類型ESRI.ArcGIS.Carto.MapDocumentClass.請改用適用的接口

在對地圖文檔進行操作時&#xff0c;居然出現如下問題&#xff1a; IMapDocument m_MapDocument new ESRI.ArcGIS.Carto.MapDocumentClass(); 報錯: 無法嵌入互操作類型"ESRI.ArcGIS.Carto.MapDocumentClass".請改用適用的接口. 解決方案如下&#xff1a; 解決方案—…

java文件定時讀寫_java定時任務及日志的使用

需要引入日志的兩個架包&#xff1a;log4j.jar和commons-logging.jarpackage com.lzl;import java.util.TimerTask;import org.apache.log4j.Logger;import com.sun.org.apache.commons.logging.Log;import com.sun.org.apache.commons.logging.LogFactory;public class MyTask…

Google Code Jam 2015 Round 1A Haircut 二分

題意&#xff1a;給你每個理發師的理發時間&#xff0c;問你排在隊列中的第N個位置&#xff0c;問你應該被哪個理發師剪發。 解題思路&#xff1a;二分時間&#xff0c;看這個時間到第幾個人理發了&#xff0c;然后找到臨界值&#xff0c;看這個值的時候有那些理發師接待了新旅…

java編寫科赫曲線_matlab繪制peano(皮亞諾)曲線和koch(科赫曲線,雪花曲線)分形曲線...

koch曲線matlab plot函數繪制koch曲線程序&#xff0c;程序還是比較簡單的&#xff0c;這里只繪制出了雪花的三分之一function koch_curve(number)%number代表koch的階數&#xff0c;范圍為大于等于2figureset(gcf,position,[0,0,1920,1080]);%設置窗口分辨率&#xff0c;[0,0]…

ajax翻頁效果模仿yii框架

ajax翻頁效果模仿yii框架 ajax翻頁效果&#xff0c;模仿yii框架。 復制代碼代碼如下:<!DOCTYPE html> <html> <head> <title>ajax分頁_www.jbxue.com</title> <script src"http://code.jquery.com/jquery-1.11.0.min.js"></s…

JAVA異常處理、常用類、反射、集合

異常 異常&#xff1a;在Java中是指被一個方法拋出的對象。 分類&#xff1a;檢查異常、運行時異常、錯誤 運行時異常&#xff08;uncheckd&#xff09;&#xff1a;RuntimeException和其子類 檢查異常&#xff08;checkd/搜檢異常&#xff09;&#xff1a;指Exception和其子類…

Base64 百科詞條

Base64是一種基于64個可打印字符來表示二進制數據的表示方法。由于2的6次方等于64&#xff0c;所以每6個位元為一個單元&#xff0c;對應某個可打印字符。三個字節有24個位元&#xff0c;對應于4個Base64單元&#xff0c;即3個字節需要用4個可打印字符來表示。它可用來作為電子…

java獲取mysql執行計劃_好程序員Java學習路線之MySQL的執行計劃

好程序員Java學習路線之MySQL的執行計劃。什么是執行計劃&#xff1f;執行計劃通常是開發者優化SQL語句的第一步。MySQL在解析SQL語句時&#xff0c;會生成多套執行方案&#xff0c;然后內部會進行一個成本的計算&#xff0c;然后通過優化器選擇一個最優的方案執行&#xff0c;…

Web系統開發構架再思考-前后端的完全分離

前言 前后端完全分離其實一直是Web開發人員的夢想,也一直是我的夢想,遙想當年,無論是直接在代碼里面輸出HTML,還是在HTML里面嵌入各種代碼,都不能讓人感到滿意.期間的痛苦和糾結,我想所有Web開發人員都深有感觸. 由于最近幾年一直在MS平臺,從Web Form到MVC,MS平臺雖然易用好學,…

C++程序設計基礎

01 1 預編譯常用的有&#xff0c;宏定義和包含庫。2 庫&#xff1a;是實用工具的集和&#xff0c;由程序員編寫&#xff0c;可以完成一些特定的功能。3 <> 系統庫 ""用戶自定義庫。4 宏定義&#xff1a;定義符號常量&#xff0c;符號常量就是給常量取的名字。常…

文科思維Java_開源之Processing:這好玩的編程語言是為文科生藝術家準備的

說起編程語言&#xff0c;我們很多時候第一反應就是很難&#xff0c;都是理工科計算機相關行業的人才學的&#xff0c;都是為理科生掉頭發準備的。的確&#xff0c;計算機的嚴謹&#xff0c;注定要求開發應用的人有縝密的理工科的理性邏輯思維&#xff0c;然而一人客從另一方面…

第一章導言的筆記與思考

Writer&#xff1a;BYSocket&#xff08;泥沙磚瓦漿木匠&#xff09; 微博&#xff1a;BYSocket 豆瓣&#xff1a;BYSocket ~&#xff1a;較重要 ~~&#xff1a;重要 1.1 hello&#xff0c;world ~初學人來說還是一大障礙&#xff0c;手寫編寫程序文本&#xff0c;然后成功的進…

C 和 Object- C 中得 #ifdef 和#ifndef

很多宏是為了進行條件編譯。一般情況下&#xff0c;源程序中所有的行都參加編譯。但是有時希望對其中一部分內容只在滿足一定條件才進行編譯&#xff0c;也就是對一部分內容指定編譯的條件&#xff0c;這就是“條件編譯”。有時&#xff0c;希望當滿足某條件時對一組語句進行編…

C語言基礎小齋

一、C語言數據類型 ok&#xff0c;如我們所知&#xff0c;C語言作為大學工科專業的必學課程&#xff0c;其重要性不言而喻&#xff1b;它為我們提供了豐富的數據類型&#xff0c;所以它很適合程序員來編寫 數據庫 &#xff0c;如DB2、Oracale都是C語言編寫的。 那么C語言具體又…

《Cracking the Coding Interview》——第11章:排序和搜索——題目8

2014-03-21 22:23 題目&#xff1a;假設你一開始有一個空數組&#xff0c;你在讀入一些整數并將其插入到數組中&#xff0c;保證插入之后數組一直按升序排列。在讀入的過程中&#xff0c;你還可以進行一種操作&#xff1a;查詢某個值val是否存在于數組中&#xff0c;并給出這個…

gradle打包java項目_gradle打包java項目

轉載地址&#xff1a;http://www.gfzj.us/series/gradle/2014/12/12/gradle%E5%B0%8F%E7%B3%BB%E5%88%97(4)--gradle%E6%89%93%E5%8C%85java%E9%A1%B9%E7%9B%AE.html以gradle小系列所舉例子為示例&#xff0c;在此處介紹兩種gradle發布java項目的方法&#xff1a;fat jar方式該…

堡壘機2.0

一、編輯系統環境變量&#xff0c;讓用戶登錄后自動調用腳本 1 vim /etc/profile 2 python /baolei/ssh_login.py 3 # 判斷登錄用戶是否為 root 用戶&#xff0c;root用戶退出程序不進行logout操作&#xff0c;否則則logout 4 if [ $? ! 10 ];then 5 echo "Good …

Flex中利用ByteArray與BitmapData互相轉換實現圖片的二進制保存與復原

Flex中利用ByteArray與BitmapData互相轉換實現圖片的二進制保存與復原 近 日在項目當中需要將圖片保存到共享對象當中&#xff0c;開始用了倆天的時間做了對象的序列化&#xff0c;并以BitmapData的形式進行了圖片的序列化保存共享&#xff0c;因為系統 沒有提供更好的接口所以…