C语言上机试卷.doc_第1页
C语言上机试卷.doc_第2页
C语言上机试卷.doc_第3页
C语言上机试卷.doc_第4页
C语言上机试卷.doc_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

桂 林 电 子 科 技 大 学 试 卷2010-2011学年第 2 学期 课程名称 C语言程序设计 适用年级 10 考试时间 60 分钟 试卷编号:001考前准备:请在E盘根目录下建一个以自己学号命名的文件夹,试题中的所有程序所对应的工程目录都创建在学号文件夹下。第1题:改错题(30分)要求:该程序文件中有15个错误,请改正程序中的错误,使程序能输出正确的结果。不得增加行或删除行,也不得更改程序的结构。否则为0分。该程序的功能:调试B01.c的程序,使之具有如下功能:从键盘上输入6个整数给数组a,然后求数组a的前k个数之和并输出。【B01.c】【评分标准】每一错误处改正正确后得分7.5分,否则不得分。各处错误设置如下:#includestdio.hmain() int a6,i,k,sum; sum=0; printf(nPlease enter 6 numbers:); for(i=0;i6;i+) scanf(%d,ai); /*(1)未加地址符,ai应改为&ai */ printf(nPlease enter another number k=); scanf(%d,&k); for(i=1;i=k;i+) /*(2)循环初值应改为:i=0;*/ /*(3)循环条件应改为:ik; */ sum+=ai; printf(n sum= ,sum); /*(4)少了输出格式字符,应改为:n sum=%d */第2题:编程题1(30分)题目描述:编写程序,定义一个含20个元素的int类型数组。依次向数组中输入数值;在将数组元素中所有偶数输出到屏幕。运行参考:输入:1 54 5 7 8 66 89 12 33 36 输入数值为:1 54 5 7 8 66 89 12 33 36所有偶数:8 66 12 36要求:编程题对应的工程名为“prog1”,工程目录放在学号文件夹下。【参考程序】#include stdio.h#define N 20main()int i,aN;printf(nInput 20 number:n);for (i=0; iN; i+)scanf(%d,&ai);for (i=0; iN; i+)if (ai%2=0)printf(%4d,ai);【评分标准】1、程序结构完整:2分2、变量定义、语句、表达式书写正确、规范:2分3、算法描述正确:输入数据并存入数组中:5分输出偶数的值:10分4、程序优化:5分5、有输入/输出操作信息提示:1分6、输入数据错误检测:1分7、编译无错误:2分8、结果正确:2分第3题:编程题2(40分)题目描述:编写一个求水仙花的函数和判断整数n是否为素数的函数,求出3位正整数的全部水仙花数并判断求出的水仙花数是否为素数。所谓水仙花数是指三位整数的各位上的数字的立方和等于该整数本身。例如153就是一个水仙花数: 153135333所谓素数是指一个正整数只能被1和它本身整除的数。如153就不是一个素数。【评分标准】#include math.hint IsPrime(int n)int i;for (i=2; i=sqrt(n); i+)if (n%i=0) return 0;return 1;int IsNarcissus(int n)int i,j,k;i=n/100;j=n/10%10;k=n%10;return (i*i*i+j*j*j+k*k*k=n);main()int i;printf(n3位正整数的全部水仙花数有:n);for (i=100; i=999; i+)if (IsNarcissus(i)printf(%4d,i);if (IsPrime(i)printf(素数);elseprintf(非素数);【运行结果】:3位正整数的全部水仙花数有: 153(非素数) 370(非素数) 371(非素数) 407(非素数)【评分标准】1、程序结构完整:2分2、变量定义、语句、表达式书写正确、规范:2分3、算法描述正确:25分4、程序优化:5分5、输入/输出操作提示信息:2分6、编译无错误:2分7、结果正确:2分桂 林 电 子 科 技 大 学 试 卷2010-2011学年第 2 学期 课程名称 C语言程序设计 适用年级 10 考试时间 60 分钟 试卷编号:002考前准备:请在E盘根目录下建一个以自己学号命名的文件夹,试题中的所有程序所对应的工程目录都创建在学号文件夹下。第1题:改错题(30分)要求:该程序文件中有15个错误,请改正程序中的错误,使程序能输出正确的结果。不得增加行或删除行,也不得更改程序的结构。否则为0分。该程序的功能:源文件C02.C是有几处错误的程序,调试使之具有如下功能:输入10个整数,按每行3个数输出这些整数,最后输出这10个整数的平均值。结果用原文件名保存。【C02.c】【评分标准】每一错误处改正正确后得分6分,否则不得分。各处错误设置如下:#include stdio.hmain()int i, n=10, a10 /*(1)行末缺少一个分号*/float av; /*(2)变量av为初始化,应改为:float av=0; */for (i=0; in; i+)scanf(%d, ai); /*(3)未加地址符,ai应改为&ai */for (i=0; in; i+)printf(%3d, ai);if(i+1)%3= 0) /*(4)等号写错,应改为:(i+1)%3=0) */printf(n);for (i=0; i!=n; i+)av += ai;print(nav = %fn, av); /*(5)参数av应改为:av/10或av/n */第2题:编程题1(30分)题目描述:编写程序完成以下数字金字塔:随机输入一个大于零的整数,即输出一个由数字组成的金字塔即第一行即输出一个1,第二行输出两个2,第三行输出3个3,第n行输出n个n,例如:输入一个数字5,则输出结果如下图所示:要求:编程题对应的工程名为“prog1”,工程目录放在学号文件夹下。【参考程序】#include stdio.hmain()int i,j,n;printf(nInput a number:);scanf(%d,&n);for (i=0; in; i+)for (j=0; ji+1; j+)printf(%4d,i+1);printf(n);【评分标准】1、程序结构完整:2分2、变量定义、语句、表达式书写正确、规范:2分3、算法描述正确:15分4、程序优化:5分5、有输入/输出操作信息提示:1分6、输入数据错误检测:1分7、编译无错误:2分8、结果正确:2分第3题:编程题2(40分)题目描述:找出1000以内所有素数,并求出它们的累加和。【参考程序】#include math.hint IsPrime(int n)int i;for (i=2; i=sqrt(n); i+)if (n%i=0) return 0;return 1;main()int i,sum=0;printf(n1000以内所有素数有:n);for (i=2; i1000; i+) /*注,1不是素数,故从2开始*/if (IsPrime(i)printf(%4d,i);sum += i;printf(n其累加和sum=%dn,sum);【运行结果】:1000以内所有素数有: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 503 509 521 523 541 547 557 563 569 571 577 587 593 599 601 607 613 617 619 631 641 643 647 653 659 661 673 677 683 691 701 709 719 727 733 739 743 751 757 761 769 773 787 797 809 811 821 823 827 829 839 853 857 859 863 877 881 883 887 907 911 919 929 937 941 947 953 967 971 977 983 991 997其累加和sum=10591【评分标准】1、程序结构完整:2分2、变量定义、语句、表达式书写正确、规范:2分3、算法描述正确:15分4、程序优化:5分5、有输入/输出操作信息提示:1分6、设置处理数据范围为21000:1分7、编译无错误:2分8、结果正确:2分桂 林 电 子 科 技 大 学 试 卷2010-2011学年第 2 学期 课程名称 C语言程序设计 适用年级 10 考试时间 60 分钟 试卷编号:003考前准备:请在E盘根目录下建一个以自己学号命名的文件夹,试题中的所有程序所对应的工程目录都创建在学号文件夹下。第1题:改错题(30分)要求:该程序文件中有15个错误,请改正程序中的错误,使程序能输出正确的结果。不得增加行或删除行,也不得更改程序的结构。否则为0分。该程序的功能:给定程序A03.C中函数fun的功能是:读入一个字符串(长度20),将该字符串中的所有字符按ASCII码升序排序后输出。例如,若输入:dceba,则应输出:abcde。【A03.c】【评分标准】每一错误处改正正确后得分6分,否则不得分。各处错误设置如下:#include #include void fun( char t ) int c; int i, j; for( i = strlen( t )-1; i; i- ); /*(1)i=0; (2)去掉行末分号*/ for( j = 0; j i; j+ ) if( tj t j + 1 ) /*(3)“”*/ c = tj; tj+1 = t j ; /*(4)本行改为tj = t j+1 ;*/ ti = c; /*(5)本行改为tj+1 = c*/ main() char s81; printf( nPlease enter a character string: ); gets( s ); printf( nnBefore sorting:n %s, s ); fun( s ); printf( nAfter sorting decendingly:n %s, s );第2题:编程题1(30分)题目描述:有一个数组,内放10个整数,要求找出最小的数和它的下标。【参考程序】#include stdio.h#define N 10main()int i,aN,min;printf(nIntput 10 number:n);for (i=0; iN; i+)scanf(%d,&ai);min=0;for (i=1; iN; i+)if (aiamin) min=i;printf(min: a%d=%dn,min,amin);【评分标准】1、程序结构完整:2分2、变量定义、语句、表达式书写正确、规范:2分3、算法描述正确:输入数据并存入数组中:5分查找最小值及数组下标:10分4、程序优化:5分5、有输入/输出操作信息提示:1分6、输入数据错误检测:1分7、编译无错误:2分8、结果正确:2分第3题:编程题2(40分)题目描述:用函数编程实现如下功能:求出比x大的最初k(k1000)个素数,放入数组中输出。例如:程序运行时输入:10 10,输出:11 13 17 19 23 29 31 37 41 43 要求:在主函数中定义数组并输出处理的结果。【参考程序】#include stdio.h#include math.hint IsPrime(int n)int i;for (i=2; i=sqrt(n); i+)if (n%i=0) return 0;return 1;main()int x,k,i;printf(nInput x and k:n);scanf(%d%d,&x,&k);printf(n);i=0;while (ik)x+;if (IsPrime(x)printf(%4d,x);i+;【评分标准】1、程序结构完整:2分2、变量定义、语句、表达式书写正确、规范:2分3、算法描述正确:素数判断:15分输出素数个数控制:10分4、程序优化:5分5、输出数据布局规整:2分6、编译无错误:2分7、结果正确:2分桂 林 电 子 科 技 大 学 试 卷2010-2011学年第 2 学期 课程名称 C语言程序设计 适用年级 10 考试时间 60 分钟 试卷编号:004考前准备:请在E盘根目录下建一个以自己学号命名的文件夹,试题中的所有程序所对应的工程目录都创建在学号文件夹下。第1题:改错题(30分)要求:该程序文件中有15个错误,请改正程序中的错误,使程序能输出正确的结果。不得增加行或删除行,也不得更改程序的结构。否则为0分。该程序的功能:调试B01.c的程序,使之具有如下功能:从键盘上输入6个整数给数组a,然后求数组a的前k个数之和并输出。【B01.c】【评分标准】每一错误处改正正确后得分7.5分,否则不得分。各处错误设置如下:#includestdio.hmain() int a6,i,k,sum; sum=0; printf(nPlease enter 6 numbers:); for(i=0;i6;i+) scanf(%d,ai); /*(1)未加地址符,ai应改为&ai */ printf(nPlease enter another number k=); scanf(%d,&k); for(i=1;i=k;i+) /*(2)循环初值应改为:i=0;*/ /*(3)循环条件应改为:ik; */ sum+=ai; printf(n sum= ,sum); /*(4)少了输出格式字符,应改为:n sum=%d */第2题:编程题1(30分)题目描述:编写程序完成以下数字金字塔:随机输入一个大于零的整数,即输出一个由数字组成的金字塔即第一行即输出一个1,第二行输出两个2,第三行输出3个3,第n行输出n个n,例如:输入一个数字5,则输出结果如下图所示:要求:编程题对应的工程名为“prog1”,工程目录放在学号文件夹下。【参考程序】#include stdio.hmain()int i,j,n;printf(nInput a number:);scanf(%d,&n);for (i=0; in; i+)for (j=0; ji+1; j+)printf(%4d,i+1);printf(n);【评分标准】1、程序结构完整:2分2、变量定义、语句、表达式书写正确、规范:2分3、算法描述正确:15分4、程序优化:5分5、有输入/输出操作信息提示:1分6、输入数据错误检测:1分7、编译无错误:2分8、结果正确:2分第3题:编程题2(40分)题目描述:从键盘输入一个矩阵a33、b33,先在屏幕上输出该矩阵,然后将矩阵对应数据相乘,即aij*bij将相乘后的数据放到矩阵a33,再输出求乘后的矩阵。(注意:要程序实现过程中调用到自己编写的函数。)运行参考:请输入矩阵a3 3的值:1 2 3 4 5 7 8 9 b33 的值:1 2 3 4 5 6 7 8 9 矩阵a3 3被处理后的值为:1 4 916 25 3649 64 81【参考程序】#define M 3#define N 3void InputMatrix(int aN,int m,int n)int i,j;for (i=0; im; i+)for (j=0; jn; j+)scanf(%d,&aij);void OutputMatrix(int aN,int m,int n)int i,j;for (i=0; im; i+)for (j=0; jn; j+)printf(%4d,aij);printf(n);void MulMatrix(int aN, int bN, int m, int n)int i,j;for (i=0; im; i+)for (j=0; jn; j+)aij *= bij;main()int aMN,bMN;InputMatrix(a,M,N);InputMatrix(b,M,N);printf(a=n);OutputMatrix(a,M,N);printf(b=n);OutputMatrix(b,M,N);MulMatrix(a,b,M,N);printf(a*b=n);OutputMatrix(a,M,N);【评分标准】1、程序结构完整:2分2、变量定义、语句、表达式书写正确、规范:2分3、算法描述正确:25分4、程序优化:5分5、输入/输出操作提示信息:2分6、编译无错误:2分7、结果正确:2分桂 林 电 子 科 技 大 学 试 卷2010-2011学年第 2 学期 课程名称 C语言程序设计 适用年级 10 考试时间 60 分钟 试卷编号:005考前准备:请在E盘根目录下建一个以自己学号命名的文件夹,试题中的所有程序所对应的工程目录都创建在学号文件夹下。第1题:改错题(30分)要求:该程序文件中有15个错误,请改正程序中的错误,使程序能输出正确的结果。不得增加行或删除行,也不得更改程序的结构。否则为0分。该程序的功能:给定程序A03.C中函数fun的功能是:读入一个字符串(长度20),将该字符串中的所有字符按ASCII码升序排序后输出。例如,若输入:dceba,则应输出:abcde。【A03.c】【评分标准】每一错误处改正正确后得分6分,否则不得分。各处错误设置如下:#include #include void fun( char t ) int c; int i, j; for( i = strlen( t )-1; i; i- ); /*(1)i=0; (2)去掉行末分号*/ for( j = 0; j i; j+ ) if( tj t j + 1 ) /*(3)“”*/ c = tj; tj+1 = t j ; /*(4)本行改为tj = t j+1 ;*/ ti = c; /*(5)本行改为tj+1 = c*/ main() char s81; printf( nPlease enter a character string: ); gets( s ); printf( nnBefore sorting:n %s, s ); fun( s ); printf( nAfter sorting decendingly:n %s, s );第2题:编程题1(30分)题目描述:编写程序,定义一个含20个元素的int类型数组。依次向数组中输入数值;在将数组元素中所有偶数输出到屏幕。运行参考:输入:1 54 5 7 8 66 89 12 33 36 输入数值为:1 54 5 7 8 66 89 12 33 36所有偶数:8 66 12 36要求:编程题对应的工程名为“prog1”,工程目录放在学号文件夹下。【参考程序】#include stdio.h#define N 20main()int i,aN;printf(nInput 20 number:n);for (i=0; iN; i+)scanf(%d,&ai);for (i=0; iN; i+)if (ai%2=0)printf(%4d,ai);【评分标准】1、程序结构完整:2分2、变量定义、语句、表达式书写正确、规范:2分3、算法描述正确:输入数据并存入数组中:5分输出偶数的值:10分4、程序优化:5分5、有输入/输出操作信息提示:1分6、输入数据错误检测:1分7、编译无错误:2分8、结果正确:2分第3题:编程题2(40分)题目描述:找出1000以内所有素数,并求出它们的累加和。【评分标准】#include math.hint IsPrime(int n)int i;for (i=2; i=sqrt(n); i+)if (n%i=0) return 0;return 1;main()int i,sum=0;printf(n1000以内所有素数有:n);for (i=2; i1000; i+) /*注,1不是素数,故从2开始*/if (IsPrime(i)printf(%4d,i);sum += i;printf(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论