2018秋c语言程序设计考试答案,2018秋C语言程序设计上(赵三元)-中国大学mooc-题库零氪...
第二次課教學資料與課后調研:集成開發環境IDE
第二次課后調研:集成開發環境IDE(分組完成)
1、集成開發環境(IDE,Integrated Development Environment )是用于提供程序開發環境的應用程序,一般包括代碼編輯器、編譯器、調試器和圖形用戶界面工具,集成了代碼編寫功能、分析功能、編譯功能、調試功能。 C程序還能怎么開發?可以不用集成開發環境嗎?使用集成開發環境開發C程序有什么好處?windows系統和linux系統下面C程序的開發方式一樣嗎? 請針對以上問題,對C程序的開發環境進行調研,也可以對集成開發環境簡單介紹。
第四次課教學資料與實驗:輸入輸出和選擇結構的程序設計
第四次課實驗:輸入輸出和選擇結構的程序設計(分組完成)
1、請從以下列出的C語言處理系統中,選擇任意兩種分別安裝,并通過錄入、運行給出的C語言程序實例,觀察系統各工具的界面,嘗試使用系統給出的工具調試運行程序,分析各平臺的功能特點,選擇適合自己使用的語言言處理系統并熟悉它。C語言處理系統: Turbo C2.0 WinTC 2.0 Visual C 6.0 Dev C++ ----------------C語言程序實例-------------- #include "stdio.h" int main() { Int a=15; printf("%d\n",sizeof(a)); } -------------------------------------------------- 根據程序1完成表格1的內容,將各個工具運行程序后的輸出填入表格中并提交。 表格 1 在以下工具中運行程序1 輸出是 Turbo C2.0 WinTC 2.0 Visual C 6.0 Dev C++
2、
圖1 C語言編譯過程示意圖 根據圖1完成表格2并提交。 表格2 序號 內容 【1】 【2】 【3】 【4】 【5】 【6】 【7】 【8】
3、請根據程序上下文分析程序功能,將程序空缺的【1】、【2】、【3】部分補充完整,完成表格3的填寫并提交。 #include "stdio.h" int main() { 【1】 a; scanf("%【2】",&a); printf("【3】\n",a);; } 表格 3 填空序號 填空內容 功能說明 【1】 從鍵盤上輸入A 屏幕輸出65 【2】 【3】 【1】 從鍵盤上輸入3.1415926 屏幕輸出3.14 【2】 【3】 【1】 從鍵盤上輸入5 屏幕輸出5.00 【2】 【3】 【1】 從鍵盤上輸入5 屏幕輸出:[空格][空格][空格][空格]5.00 【2】 【3】
4、請根據程序上下文分析程序功能,將程序空缺的【1】、【2】、【3】部分補充完整,完成表格4的填寫并提交。 #include "stdio.h" int main(){ 【1】 a; 【2】 b; scanf("%【3】",&a,&b); printf("【4】\n",a【5】b); } 表格4 序號 內容 要求 【1】 從鍵盤上輸入35 5 屏幕輸出7 【2】 【3】 【4】 【5】 【1】 從鍵盤上輸入35 5 屏幕輸出7.00 【2】 【3】 【4】 【5】 【1】 從鍵盤上輸入A,5 屏幕輸出13.00 【2】 【3】 【4】 【5】 【1】 從鍵盤上輸入A5 屏幕輸出13.00 【2】 【3】 【4】 【5】 【1】 從鍵盤上輸入A 5 屏幕輸出13.00 【2】 【3】 【4】 【5】 【1】 從鍵盤上輸入5 6 屏幕輸出:[空格][空格][空格][空格]30.00 【2】 【3】 【4】 【5】
5、對一元二次方程ax2+bx+c=0的求解。如果考慮a、b、c取值分別如表格5,求一元二次方程ax2+bx+2=0的根。(提示:若b2-4ac>0,方程有兩個不同的實根。若b2-4ac<0,方程有兩個復根,其實部和虛部分開計算;若b2-4ac=0,方程有兩個相等的實根;請分別考慮: a=0、b=0和a、b均為0時的情況。) 請按照表格5中“期待的輸出”要求: 1、針對問題畫出流程圖(可手畫拍照上傳)或寫出偽代碼(偽代碼無格式要求),并提交; 2、將程序空缺的①、②、③、④、⑤、⑥語句補充完整,并調試運行,填寫表格6并提交。 C的源程序如下: #include "stdio.h" #include "math.h" int main(void) {int a,b,c; double d,e,f; scanf("%d %d %d",&a,&b,&c); d=a, e=b, f=c; if (a==0) if (b==0) 【1】; 【2】; else if ( 【3】 ) printf("x1=x2=%.6f\n",0-e/(2*d)); else if (b*b-4*a*c>0) printf("x1=%.6f\nx2=%.6f\n",(-e+sqrt(e*e-4*d*f))/(2*d),(-e-sqrt(e*e-4*d*f))/(2*d)); else 【4】 【5】; 【6】 printf("x1=%.6f+%.6fi\nx2=%.6f%.6fi\n",-e/(2*d),sqrt(4*d*f-e*e)/(2*d),-e/(2*d),-sqrt(4*d*f-e*e)/(2*d)); } 表格5 輸入 期待的輸出 說明 a b c X1 X2 3 5 2 X1= X2= b2-4ac>0 2 4 2 X1=X2=-1.000000 b2-4ac=0 3 4 2 X1=-0.666667+0.471405i X1=-0.666667-0.471405i b2-4ac<0 3 0 2 X1= X2= b=0 0 4 2 X=-0.500000 a=0 0 0 2 Input error! a=0,b=0 表格6 序號 C語句 【1】 【2】 【3】 【4】 【5】 【6】
6、輸入某年某月某日,判斷這一天是這一年的第幾天? 算法分析提示:以3月5日為例,應該先把前兩個月的加起來,然后再加上5天即本年的第幾天。 特殊情況:閏年且輸入月份大于3時需考慮多加一天。 請按照表格7中“期待的輸出”要求,將程序空缺的【1】、【2】、【3】、【4】、【5】語句補充完整,并調試運行,填寫表格8并提交;針對表格7每一組輸入,將程序對應的輸出填寫在表格7中并提交。 表格7 輸入 期待的輸出 說明 2013.3.27 It is the 86th 按照格式輸出 1996.3.27 It is the 87th 2012.5.8 1990.10.1 2008.8.8 表格8 序號 C語句 【1】 【2】 【3】 【4】 【5】 C的源程序如下: /*題目:輸入某年某月某日,判斷這一天是這一年的第幾天?*/ #include "stdio.h" int main() { int day,month,year,sum,leap; printf("\nplease input year,month,day\n"); scanf("%d,%d,%d",&year,&month,&day); switch( 【1】 )/*先計算某月以前月份的總天數*/ { case 1:sum=0;break; case 2:sum=31;break; case 3:sum=59;break; case 4:sum=90;break; case 5:sum=120;break; case 6:sum=151;break; case 7:sum=181;break; case 8:sum=212;break; case 9:sum=243;break; case 10:sum=273;break; 【2】 ; 【3】 ; default:printf("data error"); 【4】 ; } sum=sum+day; /*再加上某天的天數*/ if(year%400==0||(year%4==0&&year%100!=0))/*判斷是不是閏年*/ leap=1; else leap=0; if(leap==1&&month>2)/*如果是閏年且月份大于2,總天數應該加一天*/ 【5】; printf("It is the %dth day.",sum); }
第五次課教學資料與課后調研:C語言標準
第五次課后調研:C語言標準(分組完成)
1、1989年,出現了C89標準 (known as ANSI C or Standard C);1990年,出現了C90( ANSI C adopted by ISO);1999年,出現了C99標準( mostly backward-compatible, not completely implemented in many compilers);2007年,出現了C1X。 請針對C語言的以上幾個標準展開調研,簡要分析一下它們之間的差異。
第七次課教學資料與實驗:循環結構和數組的程序設計
第七次課實驗:循環結構和數組的程序設計(分組完成)
1、將一個正整數分解質因數。 算法分析提示:對n進行分解質因數,應先找到一個最小的質數k,然后按下述步驟完成: (1) 如果這個質數恰等于n,則說明分解質因數的過程已經結束,打印出即可。 (2) 如果n不等于最小的質數k,但n能被k整除,則應打印出k的值,并用n除以k的商,作為新的正整數n,重復執行第一步。 (3)如果n不能被k整除,則用k+1作為k的值,重復執行第一步。 C的源程序如下: /*題目:將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5。*/ #include "stdio.h" int main() { int n,i; printf("\nplease input a number:\n"); scanf("%d",&n); printf("%d=",n); for(i=2; 【1】 ;i++) { while( 【2】 ) { if(n%i==0) { printf("%d*",i); n=n/i; } else 【3】; } } printf("%d",n); } 請按照表格1中“期待的輸出”要求,將程序空缺的【1】、【2】、【3】語句補充完整,并調試運行,針對每一組輸入,將對應的輸出填寫在答題框中,注意標記小組成員姓名。 表格1 輸入 期待的輸出 說明 90 90=2*3*3*5 按照格式輸出 123 1234 200 2 0
2、數組的賦值與打印: 程序2是數組的輸入和輸出代碼,請閱讀該代碼并完成表格2。 程序2: #include #include int main() { int a[5];/*數組沒有初始化*/ int i; for(i=0;i<5;i++) printf(“%d\n”,a[i]);/*【1】訪問數組的數據*/ for(i=0;i<5;i++) scanf(“%d”,&a[i]);/*【2】對數組元素賦值*/ for(i=0;i<5;i++) printf(“%d”,a[i]); /*【3】訪問數組的數據*/ for(i=0;i<10;i++) printf(“%d”,a[i]); /*【4】訪問數組的數據*/ system(“pause”); return 0; } 表格2 執行的語句 問題 【1】 語句【1】的執行結果是什么? 將你的運行結果與其他同學對比一下,大家的結果都一樣嗎? 為什么會打印出這樣的數值? 【2】 請輸入5個整數,“12 23 34 45 56”,運行語句【3】和【4】,將觀察結果記錄在【3】【4】后面的空格中 【3】 運行結果 【4】 運行結果 和其他同學對比一下,后五個數字一樣嗎? 你的數組越界了嗎?你怎樣知道數組越界了呢?
3、字符串的處理。 程序3是將字符串逆序排列的算法,請將空缺的語句填寫完整,完成表格3。 程序3: #include #include int main() { char str[100], c; int i, j; printf (“Enter string:”); gets (str); for ( i=0; 【1】; i++ ); i--; for ( j=0; j
4、求一個字符串的子串。 程序4:求一個字符串的字串,輸入m,n,求一個字符數組m和n之間的部分。 例如,字符串str為“123456789”,m=3,n=5,對應的子串sub為“4”。對程序填空,并完成表格4-1和4-2。 程序4 #include #include int main() { char str[100], sub[100]; int m, n, k, p; printf(”Enter string:”); gets(str); printf(”Enter m n:”); scanf(”%d%d”, &m, &n); for ( k=0; k
5、打印等腰三角形 程序5的功能是打印邊長為h的等腰三角形,輸入邊長h,輸出一個等腰三角形。請根據表5的要求完成程序填空。 程序5 #include int main( ) { int h, i, j; scanf("%d", &h); for ( i=1; i<=h; i++ ) /* 控制打印 h 行 */ { for ( j=1; j<=h-i; j++ ) /* 打印空格 */ printf(" "); /*【2-1】在本行添加代碼,打印空心菱形的左側邊*/ for ( j=1; j<=2*i-1; j++ )/* 打印 * 號 *//*【2-2】修改本行代碼,控制空心菱形中間的空格的個數*/ /*【2-3】在本行添加代碼,打印空心菱形中間空格*/ printf("*"); printf("\n") ; } /* 【1】添加代碼,使之成為邊長為h的菱形*/ /*【3】把菱形的下三角形部分修改成為空心*/ return 0; } 表 5(務必按照序號先后順序完成) 序號 功能 語句 1 添加代碼,使三角形變成邊長為h的菱形 2 在1的基礎上修改代碼,使其變為空心菱形 2-1 在本行添加代碼,打印空心菱形的左側邊 2-2 修改本行代碼,控制空心菱形中間空格的個數 2-3 在本行添加代碼,打印空心菱形中間空格 3 把菱形的下三角形部分修改成為空心
6、打印梯形 程序6是打印一個數字梯形,輸入為梯形的上底和高n,以及上底的數字ini,輸出為一個由數字組成的空心梯形。如圖所示:
請將程序完型填空,并完成表6。 程序6 #include int main() { int n,i,j,a,b,ini; /*i,j分別表示行號和列號,a、b分別表示上底和下底上的數字個數*/ scanf("%d%d",&n,&ini); a = n; b = 【1】a+2*n-2; for(i=1;i<=n;i++) { if(i==1) /*打印下底*/ { for(j=1;j<=b;j++) printf("%d",【2】); printf("\n"); } else if(i==n) /*打印上底*/ { for(j=1;【3】;j++) printf(" "); for(j=1;j<=a;j++) printf("%d",【4】); printf("\n"); } else /*打印梯形中間部分*/ { for(j=1;【5】;j++) printf(" "); /*打印每行開頭的空格*/ printf("%d",【6】); /*打印梯形左側邊*/ for(j=1;j<=【7】;j++)/*打印梯形中間的空格*/ printf(" "); printf("%d\n",【8】); /*打印梯形右側邊*/ } } } 表 6 序號 語句 【1】 【2】 【3】 【4】 【5】 【6】 【7】 【8】
7、輸入一行字符,將其中的每個字符從小到大排列后輸出。請分別使用冒泡排序、選擇排序、插入排序實現該功能,并根據表7將三種方法的完整代碼給出,填寫在答題框中。 程序7參考代碼: #include int main ( ) { char string [100], t; int i, j, n; gets ( string ); n = strlen ( string ); /*請在下面區域填寫你的代碼*/ /* 1. 冒泡法排序 */ /* 2. 選擇法排序 */ /* 3. 插入法排序 */ /*請在上方區域填寫你的代碼*/ puts ( string ); } 表 7 序號 完整代碼 【1】冒泡法排序 【2】選擇法排序 【3】插入法排序
總結
以上是生活随笔為你收集整理的2018秋c语言程序设计考试答案,2018秋C语言程序设计上(赵三元)-中国大学mooc-题库零氪...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浅谈几种主流数控机床的数据采集技术
- 下一篇: 视听说英语