您好,欢迎来到尚车旅游网。
搜索
您的当前位置:首页f2C语言B试卷

f2C语言B试卷

来源:尚车旅游网
《C语言程序设计》试卷

一.单项选择题(请将选择结果填入题首的【】内,每小题2分,共40分)

【 】1. 定义n为整型变量,x为浮点型变量的正确语句是( )。 A. double n,x; B. float x; int n; C. int x; float n, D. int n, float x;

【 】2. 设:int n; 判断“n不为0”的表达式是( )。 A. n==0 B. !(n=0) C. n=!0 D. n!=0

【 】3. 用于for循环体中continue语句的作用是( )。 A. 终止程序执行 B. 终止循环继续 C. 结束本次循环 D. 重新执行循环

【 】4. 设:char y='f'; 则执行printf(\"%c\\n\后输出的结果是( )。 A. E B. F C. G D. H

【 】5. 设:char m; 判断“m是否为数字字符”的表达式是( )。 A. '0'<=m <='9' B. 0<=m && m<=9 C. m>='0' && m<='9 D. \"0\"<=m && m<=\"9\"

【 】6. 为字符变量a、b分别赋初始'S'、'H'的语句是( )。 A. char a,b='S','H'; B. char a='S', b='H'; C. char a=\"S\D. char a='S',char b='H';

【 】7. 设:int n=2012; ( )使屏幕上同样显示“n=2012”。 A. printf( &n ); B. printf( \"n=\C. printf( \"n=%d\; D. printf(\"n=\

【 】8. 设:char b[5], *p=b; ( )赋值语句是正确。 A. b=\"com\"; B. *b=\"com\"; C. p=\"com\"; D. *p=\"com\";

【 】9. 设:int x[]={0,1,2,3,4,5,6,7,8,9}, *p=x+5;

while(*p++<7); 则语句 printf(\"%d\的输出结果为( )。 A. 6 B. 7 C. 8 D. x[7]的地址

【 】10. 以下语句中,( )语句的循环次数不为10次。

A.for(i=1;i<10;i++); B.for(i=10;i>=1;i--); C.i=10;while(i>0){--i;} D.i=1;do{i++;}while(i<=10);

【 】11. 若要定义一个int型二维数组a,并使其各元素具有初值:2 3 0 0 4 0 5 0

0 0 0 0,则正确的语句( )。 A. int a[3][4]= {{2,3},{4,,5}}; C. int a[][4]= {2,3,0,0,4,0,5,0,0,0,0,0}; B. int a[][]={2,3,0,0,4,0,5,0,0,0,0,0}; D. int a[][]={{2,3,0,0},{4,0,5,0},{0,0,0,0}};

【 】12.( )是错误的数组声明语句。 A.char a[] = \"china\"; C.char a[]={\"china\B.char a[]='china'; D.char a[]={'c','h','i','n','a' };

共 7 页 第 1 页

【 】13. 已知函数原型int f(int)和int g(int)。( ) 是正确的函数调用语句。 A. int f(3); C. int g( f(3) ); B. f( int g(3) ); D. p=f( g(3) +1 );

【 】14. 设:struct fs { int fz, fm; };

struct fs x={2,3}, y={5,7}; 则表达式 x.fz*y.fm 的结果是( )。 A. 14 B. 15 C. 21 D. 35

【 】15. 关于C程序的主函数,( ) 是正确的。

A. C程序可以没有主函数,程序从第一个函数开始运行。 B. C程序的主函数就是main函数,程序从该函数开始运行。 C. C程序的第一个函数称为主函数,程序从该函数开始运行。 D. C程序可以有多个主函数,程序从第一个主函数开始运行。

【 】16. C语言程序:void main()

{int c=20;printf(\"%d\\n\}的执行结果是( )。 A. 0 B. 1 C. c D. c*c

【 】17. 设: float w; int num; char s; ( )是正确的switch语句。 A. switch(w) { case 1.0: printf(\"*\\n\"); case 2.0: printf(\"**\\n\"); } B. switch(num); { case 1 printf(\"*\\n\"); case 2 printf(\"**\\n\"); }

C. switch(s) { case 'a': printf(\"*\\n\"); case 'b': printf(\"**\\n\"); default: printf(\"\\n\");} D. switch(num+1) { case 1: printf(\"*\\n\"); case 1: printf(\"**\\n\"); default: printf(\"\\n\"); }

【 】18. 设:int i,n ;double sum; 则求调和级数s=1+1/2+1/3+...前n项之和的正确循环语句是( )。 A. for(i=1;i<=n;i++) sum+=1/i ; C. for(i=1,sum=0.0;i<=n;i++) sum+=1/i; B. for(i=1,sum=0.0;i<=n;i++) sum+=1.0/i; D. for(i=1,sum=0.0;i<=n;i++) sum+=(float)(1/i) ;

【 】19. 设:char st[]=\"www.gench.edu.cn\"; int i=0; char *s=st; 执行:while(*s++!= 'g') i++; 语句后i和*s的值分别为( )。 A. 5和'g' B. 5和'e' C. 4和'g' D. 4和'e'

【 】20.( )定义文件指针,实现对fiel.txt文件的操作。 A. FILE *pf; C. int *pf; B. char pf[] = \" file.txt \"; D. file *pf;

二.程序改错题。本着尊重原创的原则,修改程序使其正确并具备相应功能。(3小题,共20分)

-8

1.程序功能:根据公式PI/2=1+1!/3 +2!/(3*5)+„„ +n!/(3*5*„*(2n+1))求PI值,直到某一项小于10为止。 正确运行结果:PI=3.141593。(本小题8分) 不正确的源程序 #include int fact(int n); int multi(int n); int main(void) 正确的源程序 共 7 页 第 2 页

{ int i; double sum, item, eps; eps = 1e-6; sum = 1; item = 1; for(i = 1;item >= eps; i++){ item = fact(i) / multi(2*i + 1); sum = sum + item; } printf(\"PI=%0.5lf\\n\ return 0; } int fact(int n) { int i; double res; res = 1; for(i = 0; i <= n; i++) } int multi(int n) { int i; double res; res = 1; res = res * i; return res; for(i = 1; i <= n; i = i+2) res = res * i; return res; } 2.主函数输入两个整型数,调用swap函数实现两数交换后输出。(本小题7分) 程序正确运行的结果示例:

不正确的源程序 正确的源程序 共 7 页 第 3 页

#include int main() {int b; printf(\"input a,b: \"); scanf(\"%d,%d\swap(a,b); printf(\"a=%d,b=%d\\n\return; } void swap(int *pa,int *pb); {int t; t=pa pb=t pa=pb ; }

3.程序功能:判断一个数是否是素数。注:素数就是只能被1和自身整除的正整数;1不是素数,2是素数。(本小题5分)

程序正确运行的结果示例:

number:22

22是素数 不正确的源程序 include int mian(void) { int i, m; printf(\"number:\"); scanf(\"%d\ for(i = 2; i 三.程序填空题。请按注释提示完整程序。(每题15分,共30分) 1.程序功能:输入一个日期(yyyy-mm-dd),计算该日期是该年的第几天。要求:创建一个Date的日期结构体类型,使用结构指针作为函数参数传递日期数据。程序正确运行的结果示例:

input a date(yyyy-mm-dd):2012-7-6 2012-7-6是2012年的第188天

/********************/

共 7 页 第 4 页

正确的源程序 /*源程序——不完整版*/ /********************/ #include

//定义一个日期结构,包含int数据成员年(year)月(month)日(day),并重命名为DATE typedef struct {

; int getDays(DATE*pd); void main() { int days; DATE d;

printf(\"input a date(yyyy-mm-dd):\");

scanf(\"%d-%d-%d\输入一个日期存储到DATE变量d中 days= ;//调用getDays函数,传递DATE变量d的地址到子函数,返回第几天 printf(\"%d-%d-%d是%d年的第%d天\}

int getDays(DATE*pd)

{ int table[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31} ,{0,31,29,31,30,31,30,31,31,30,31,30,31}};

int days= ;//将日期的日数据赋给days变量 /*计算pd->year是否是一个闰年*/

int leap= ; for(int i=1; ;i++)//累加1月份到日期的前一个月的天数

days+=table[ ][ ];

return days; }

2.程序功能:从input.txt文件中读入数据,删除奇数位置上的数,结果保存到result.txt文件中。 (1)int getData(int arr[]):从input.txt文件中读数据写入arr数组,返回数组实际长度。(本小题4分) int getData(int arr[]) {int i=0; FILE *fp;

if(( ))==NULL) //打开input.txt文件

共 7 页 第 5 页

{printf(\"can not open file!\"); return -1; }

while( )//input.txt文件不为空时,执行循环体。

{ ; //从input.txt文件读数据按指定格式写入arr数组。 i++; }

; //关闭input.txt文件

return i; }

(2)int delArray(int arr[],int n,int i):删除下标为i的数组元素,返回数组实际长度。(本小题2分) int delArray(int arr[],int n,int i) { int j;

for( ; ;j++)//从第i+1个到最后一个元素向前移动一位 arr[j-1]=arr[j];

return ; //返回数组实际长度

}

(3)int saveData(int arr[],int n) 将数组arr的数据写入result.txt文件,成功返回1,否则0。(本小题3分) int saveData(int arr[],int n) { int i; FILE *fp;

if((fp=fopen(\"result.txt\ {printf(\"can not open file!\"); return 0; }

//遍历arr数组,将arr[i]数组元素的值写入result.txt文件

for( ; ; ) fprintf( , , ); fclose(fp);

;//成功返回

}

(4)主函数:调用上述子函数实现程序功能。(本小题6分)

假设input.txt文件内容:

11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

程序正确运行后,result.txt文件内容:

12 14 16 18 20 22 24 26 28 30 #include #define LEN 100

共 7 页 第 6 页

int delArray(int arr[],int n,int i); int getData(int arr[]); int saveData(int arr[],int n); void main()

{int a[ ],n;//定义a数组 int i;

n= ;//调用getData函数,从input.txt文件读数据写入a数组,返回数组实际长度 if( ) //文件为空的条件 { printf(\"文件为空!\");return ; } if(n<0)

{ printf(\"程序运行错误!\");return ; }

i=(n%2==0)? ;//n为偶数,i=n-2,否则i=n-1 for(;i>=0;i=i-2)

n= ;//调用delArray函数,删除a数组下标为i的数组元素,返回删除后数组长度 if( ) //调用saveData函数,将运行结果写入result.txt文件 printf(\"程序执行成功!\"); else

printf(\"程序执行失败!\"); }

四.程序设计题(10分)

编写一个字符串处理程序。功能:输入一个字符串,删除其中的数字字符后,全部转换成小写输出。 提示:字符串全部转换成小写函数原型:char*strlwr(char*src) 程序正确运行示例:

输入一个字符串:My PassWord:GenCh2012! 输出:mypassword:gench!

共 7 页 第 7 页

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务