在线作业答案 发表于 2017-10-6 16:51:59

西南大学网络教育学院C语言17秋在线作业

C语言


单项选择题
1、假定p1和p2是已赋值的字符型指针,则下述有关运算中,非法的是( )
    A..p2=p1+(p1-p2);  printf("equal.");
    B..if(p1==p2)
    C..*(p1-2+p2)=getchar();
    D.*(p1+=2)=*p2
单项选择题
2、循环语句for (x=0,y=0;(y!=123)||(x<4);x++);的循环执行( )
    A.无限次
    B.4次
    C.3次
    D.不确定次
单项选择题
3、设有定义int a=5,b,*p=&a;,执行下列语句后,b的值不为5的赋值语句是( )。
    A.b=*&a
    B.b=*
    C.b=a
    D.b=*a
单项选择题
4、若有定义: char s;以下哪个选项不能实现将字符串This is a Program.存入数组s中( )。
    A.gets(s+2)
    B.scanf(\"%20s\
    C.s)"
    D..for(i=0;i<18;i++) ((c=getchar())!="\n")D.i=0;while((c=getchar())!="\n")
    E..i=0;while
单项选择题
5、对于for( 表达式1;;表达式3)可理解为( )
    A.for(表达式1;1;表达式3)
    B.for(表达式1;表达式1;表达式3)
    C.for(表达式1;表达式3;表达式3)
    D.for(表达式1;0;表达式3)
单项选择题
6、语句while (!e)中的条件!e等价于( )
    A.e==0
    B.e!=0
    C.~e
    D.e!=1
单项选择题
7、对于条件表达式(M)?(a++):(a--)来说,其中的表达式M等价于( )
    A.M==0
    B.M==1
    C.M!=1
    D.M!=0
单项选择题
8、设x,y,z,t均为int型变量,则执行x=y=z=1;t=++x||++y&&++z;语句后,t的值为( )
    A.不定值
    B.2
    C.0
    D.1
单项选择题
9、设int a=2,b;则执行b=a&&1后b的值是( )
    A.0
    B.1
    C.2
    D.3
单项选择题
10、执行下述程序后,输出的结果是( )。#include &lt;stdio.h&gt;#define SQR(X) X*Xvoid main(){int a=10,k=2,m=1; a/=SQR(k+m)/SQR(k+m); printf(%d,a); }<br
    A.10
    B.1
    C.9
    D.0
单项选择题
11、有如下程序,输入数据12345&lt;CR&gt;后,y的值是( )。#include &lt;stdio.h&gt;void main(){int x; float y; scanf(%3d%f,&amp;x,&amp;y); }<br
    A.12.000000
    B.45.000000
    C.12345.000000
    D.0.000000
单项选择题
12、若有如下程序,要求a1,a2,c1,c2的值分别为10,20,A,B,正确的数据输入是( )。#include &lt;stdio.h&gt;void main(){int a1,a2; char c1,c2; scanf(%d%d,&amp;a1,&amp;a2); scanf(%c%c,&amp;c1,&amp;c2); }<br
    A.10&nbsp;20
    B.10&nbsp;20&nbsp;AB
    C.1020AB
    D.020AB
单项选择题
13、下面程序的输出结果是( )。#include &lt;stdio.h&gt;void main(){printf(%d,null);}
    A.输出0
    B.因变量无定义,编译出错,没有输出
    C.输出-1
    D.输出0
单项选择题
14、求解表达式f=(3.0,4.0,5.0),(2.0,1.0,0.0)后; 下列正确的选项是( )
    A.语法错误
    B.使f的值为5.0
    C.使f的值为0.0
    D.使f的值为2.0
单项选择题
15、字符串\ABC\的长度是( )
    A.11
    B.7
    C.5
    D.3
单项选择题
16、表达式(1,2,3,4)的值是(
    A.1
    B.2
    C.3
    D.4
单项选择题
17、设int m=1,n=2;则表达式++m= =n的值是( )
    A.0
    B.1
    C.3
    D.2
单项选择题
18、设n=10,i=4;则赋值运算n%=i+1执行后n的值是( )
    A.3
    B.0
    C.2
    D.1
单项选择题
19、设有语句int a=3;,执行语句a+=a-=a*a;后,变量a的值是( )
    A.3
    B.0
    C.9
    D.-12
单项选择题
20、下列选项中不是C语言提供的合法保留字的是( )
    A.switch
    B.cher
    C.case
    D.default
单项选择题
21、表达式a=(a=6,a*6,a+3);运行后,则a的值为( )
    A.39
    B.36
    C.6
    D.9
单项选择题
22、下列符合C语言语法的实数是( )
    A.1.5e0.5
    B.3.16e
    C.0.5e-10
    D.e+8
单项选择题
23、关下面语句的输出的判断中,正确的是( )。long x=-
    A.输出值为-4
    B.赋值非法
    C.输出值不确定
    D.输出值为4
单项选择题
24、char型常量在内存中存放的是( )
    A.内码值
    B.SCII码值
    C.CD码值
    D.十进制代码值
单项选择题
25、C语言提供的合法的数据类型保留字(或称关键字)是( )
    A.Float
    B.unsigned
    C.integer
    D.Char
单项选择题
26、设int a=l,b=2,c=3;,执行表达式(a&gt;b)&amp;&amp;(c=1)后c的值是( )
    A.0
    B.1
    C.2
    D.3
单项选择题
28、下列叙述正确的是( )
    A.continue语句的作用是跳出循环体
    B.while循环语句的循环体至少执行一次
    C.do-while循环语句的循环体至少执行一次
    D.switch语句中的每个case语句组必须含有break语句
单项选择题
29、关于函数,下列叙述正确的是( )
    A.一个函数中可以定义其它的函数
    B.C程序总是从main()函数开始执行
    C.main()函数也可以被其它函数调用
    D.一个C程序可以有多个main()函数
单项选择题
31、设int a[ ]={12,34,56,78},*p=a;,下列表达式的值为56的是( )
    A.
    B.*(a+2)
    C.a
    D.*(p+3)
单项选择题
32、正确的C语言字符常量是( ) <br
    A.‘65’
    B.‘\\’
    C.“A”
    D.‘/n’
单项选择题
33、能正确表达数学关系式0≤x&lt;20的C语言表达式是( ) <br
    A.x&gt;=0&amp;&amp;x&lt;20
    B.0&lt;=x&lt;20
    C.x&gt;=0||x&lt;20
    D.!(x&lt;=0)&amp;&amp;x&lt;20
单项选择题
34、设int a=0,b=1;,下列语句错误的是( ) <br
    A.a=b=10;
    B.a++;
    C.b+=a;
    D.(a+b)++;
单项选择题
35、函数调用语句fun(fun(a,a+b,a+c),(a,b,c),5);中函数fun的参数个数是( ) <br
    A.3
    B.4
    C.5
    D.6
单项选择题
36、可用于C语言用户标识符的是( )
    A.void,define
    B.2c,DO
    C.For,-abc
    D.as_b3,_123
单项选择题
37、下列运算符的操作数必须是整型的是( )
    A.
    B.!
    C.%
    D.=
填空题
38、下列程序的功能是在数组a中寻找最大值的下标,输出数组a中的最大值及其下标。请填空: #include stdio.hvoid main(){int a,i,max; for(i=0;i&lt;10;i++) scanf(%d,&amp;a); for( (1) ;i&lt;10;i++) if(a&gt;a) (2)printf(最大值为:%d ,下标是:%d, (3) ,max);}

填空题
39、设int m=3;float n=12.6;char ch=’a’;,若用输入语句实现上述三个变量的初始化结果且键入数据形式为:3,12.6a&lt;回车换行&gt;,则scanf语句应是___ ________。

填空题
40、设int i;float f=3.14;,执行i=(int)f;后,变量f的值是____________。

填空题
41、若定义函数时类型缺省,则该函数默认的类型是____ _______。

填空题
42、设float a,b,c;,若a、b和c分别为三角形的三条边长,它们“能构成等边三角形”的逻辑表达式是____________。

论述题
43、编写C语言程序的一般步骤什么?在VC环境下,调试程序的基本步骤有哪些?调试程序中常见的错误有哪些?如何解决发现这些错误?

论述题
44、在C语言为什么规定对所有用到的变量要先定义,后使用”?这样的做有什么好处?

论述题
45、找出一个3行4列的二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。可能有几个鞍点也可能一个都没有。

论述题
46、请给出C语言的主要数据类型,请你至少给出4种以上的数据类型实例。

论述题
47、一个C程序由哪些要素构成,请给出一个C语言程序进行说明。

论述题
48、编一程序求:1+(1+2)+(1+2+3)+……+(1+2+3+……+10)。

论述题
49、C语言程序包括哪些三种基本结构?请给出这三种基本结构的传统流程图或N-S图

论述题
50、什么是函数的原型?其作用是什么?在这些作用中如何使用?

论述题
51、什么是内部函数和外部函数?

论述题
52、在下列程序中,循环结构执行结束后,i的值是多少,循环次数是多少?i--执行的次数是多少?#include stdio.hint main(){ int i=100, s=0,n=0; while(i--){s+=i;n++; }printf(%d ,n);}

论述题
53、在下列程序中,fun函数为一个递归函数,请将程序中的fun函数改为非递归函数,保持功能不变。#include stdio.hlong fun(int n){ if(n==1) return 1; else return n*fun(n-1);}void main(){int n;printf(请输入n的值:);scanf(%d,&amp;n);printf(%d!=%ld ,n,fun(n));}

论述题
54、1. 设float a,b,c;,若a、b和c分别为三角形的三条边长,它们“能构成等边三角形”的逻辑表达式是____________。2. 设int i;float f=3.14;,执行i=(int)f;后,变量f的值是____________。3. 设char s[]=”\t\’Name\\Address\n”;,s的长度是___________。4.设int x=1,y=3,z;,执行z=x&gt;y?++x:y++;后,z的值是____________。5. 设int m=3;float n=12.6;char ch=’a’;,若用输入语句实现上述三个变量的初始化结果且键入数据形式为:3,12.6a&lt;回车换行&gt;,则scanf语句应是___ ________。6. 若定义函数时类型缺省,则该函数默认的类型是____ _______。7. 设int a={l,3,5,7,9},*p=&amp;a;,则++(*p)的值是_______8.以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空。main(){float x,sum=0.0,ave,a;int n=0,i;printf(Enter mark:\n”);scanf(%f”,&amp;a);while( (1)  ){sum___(2)_ ___;x=a ;n++;scanf(%f”,&amp;a);}ave=____(3)___;printf(Output:\n”);printf(ave=%f\n”,ave);for(i=0;i&lt;N&lt; SPAN&gt;;i++) if (x&lt;AVE) printf(%5f.2”,x);}9.下列程序的功能是在数组a中寻找最大值的下标,输出数组a中的最大值及其下标。请填空: #include stdio.hvoid main(){int a,i,max; for(i=0;i&lt;10;i++) scanf(%d,&amp;a); for( (1) ;i&lt;10;i++) if(a&gt;a) (2)printf(最大值为:%d ,下标是:%d, (3) ,max);} 10、下列程序的功能是:从键盘输入10数,找出其中的素数并按降序输出这些素数。请根据给定的程序和程序的功能完善该程序。(每空2分,共6分)。#include#includeint f(int x){int i; for(i=2;i&lt;=sqrt(x);i++) if(x%i==0) return 0; (1) }void main(){int a,i,n=0,j,t; for(i=0;i&lt;10;i++) scanf(%d,&amp;a); for(i=0;i&lt;10;i++) if( (2)) n++; else a=0; for(i=0;i&lt;9;i++) for(j=0;j&lt;9-i;j++) if( (3) ) {t=a;a=a;a=t;} printf(共有%d个素数,它们是:,n); for(i=0;i&lt;9;i++) if(a!=0) printf(%d ,a);}   11. 从键盘输入10个学生的姓名、性别和成绩,计算并输出这些学生的平均成绩。  #define N 10  struct student  {  char name ;  char sex;  int score;  } stu;  void main( )  {  int i;  float aver,sum=0;  for(i=0;i&lt;N&lt; SPAN&gt;;i++)  { scanf(“%d,%c%s”,(1)__ _______);/*第一空*/  sum=sum+_(2) ________; /*第二空*/  }  aver=_(3)_ ________; /*第三空*/  printf(“aver=%6. 2f\n”,aver);  }  12. 从键盘输入一串字符(以“?”作为结束标志),保存到文本文件text. txt中。  #include “stdio.h”  void main()  {  FILE (1)______; /*第一空*/  char ch;  if( (fp=fopen (“text. txt’’,_(2)_ _____) )==NULL) exit(0); /*第二空*/  while( (ch=getchar( ))!=’?’) fputc(ch,_(3)_ ______); /*第三空*/  fclose(fp);  }  13. 用递归方法计算学生年龄,已知第一位学生年龄为10岁,其余学生一个比一个大2岁,求第5位学生的年龄。  递归公式如下:  age(n)=  int age(int n)  {  if (n==1) return (__(1)_ ____); /*第一空*/  else return(_(2)_ _______); /*第二空*/  }  void main()  {  printf(‘‘%d\n”,_(3)__ ______); /*第三空*/  }14.依据下列提供的程序回答问题(1)提供程序的功能是什么? #include stdio.hvoid main(){int score,i,max; for(i=0;i&lt;10;i++) {printf(请输入第%d个学生的成绩(0-100):\n,i+1); scanf(%d,&amp;score);} for(i=1,max=0;i&lt;10;i++) if(score&gt;score) max=i; printf(最高成绩为:%d ,最高成绩是第%d个:%d,score,max+1);}(2)请依据提供的程序画出其中的传统流程图或N-S图。(3)在VC6.0环境下,运行上述程序时,若输入数据如89、87、77、67、87、80、97、80、97、74、58、84,则输出结果是什么?

论述题
55、下列表达式的值是多少?处理表达式后, a的值是多少?,假设整数类型变量a的值为12(1)a+=a (2)a-=2(3)a*=2+3 (4)a/=a+a(5)a%=(n%=2) n的值等于5 (6)a+=a-=a*a

论述题
56、请简述算法、程序设计语言与程序的区别与联系

论述题
57、什么是算法?算法的特征?算法的描述方法有哪些?

论述题
58、4.写出下列表达式所对应的C语言表达式,其中x,y为整数,a,b,c为实数类型内容见附件写C语言表达式</a

论述题
59、在下列程序中,函数f的功能是什么? 该程序的运行结果是多少?#include stdio.hint fun(int num){int k=1;do {k*=num%10; num/=10;}while(num&gt;0); return k;}int main(){int x=651,y=123;printf(%d,%d,fun(x),fun(y));}

论述题
60、在下列程序中,函数p的功能是什么? 该程序的运行结果是多少?#include stdio.hvoid sort(int x[ ],int n) {int i,j,k,t; for(i=0;i&lt;n-1;i++) {k=i;for(j=i+1;j&lt;n;j++)if(x&gt;x)k=j;if(i!=k)   {t=x;x=x;x=t;}   }   }int main() {int a={34,50,89,67,102,11,75,30,125,145},i; sort(a,10);for(i=0;i&lt;10;i++)printf(%10d,a);}

论述题
61、结构化程序设计方法的内容是什么?划分模块的基本原则?采用结构化方法的好处?

论述题
62、通过你对C语言程序设计课程的学习,你认为C语言程序设计具有哪些特点?并简要说明。C语言有哪些局限性?针对这些局限性,是如何解决这些问题的?

论述题
63、程序的功能是从键盘上任意输入一个正整数,求各位数字之和。请用模块化方法改写下列程序,功能不变。#include stdio.h”void main(){int n;int r,s=0; scanf(%d”,&amp;n); do{r=n%10; s+=r; n=n/10; }while(n&gt;0); printf(%d”, s); }

论述题
64、有如下程序#include stdio.hint fun(int x){ int p; if(x==0 || x==1) return 3; else p=x-fun(x-2); return p;}int main(){ printf( %d,fun(9));}该程序的输出结果是多少?

论述题
65、下列函数的功能是什么 int fun(char *x){char *y=x; while(*y++); return y-x-1}

论述题
66、什么是指针,什么是指针变量?指针所指向的变量?给一实例说明

应用题
67、从键盘上任意输入20个2位或3位整数存放在array数组中,找出array数组中的能够被7整除的数存放在数组b中,并对b数组的值按升序排列。要求:(a)编写一个sort(int word,int a[])函数实现排序功能。(b)除sort函数外,其余在主函数内完成,但主函数必须调用sort函数实现排序功能。(c)程序必须有输入输出提示。

应用题
68、依据下列提供的程序回答问题#include stdio.hdouble fun(int a[],int m){int i;double sum=0; for(i=0;i&lt;m;i++)sum+=a; return(sum/m);}void main(){int x, count = 0,a;for (x = 1;x &lt;= 30;x++) if (x%2==0) { a=x; count++; }printf(\n这些偶数的平均值是:%6.0lf\n, aver(a,count));}(1)上述提供程序中,函数fun的功能是什么?(2)请依据上述程序思想,画出其中的传统流程图或N-S图。(3)在VC6.0环境下,运行上述程序时,其输出结果是什么?

应用题
69、编写一个函数计算函数f(x,y)=x2+y2+sin(x)的值,要求有输入输出提示,结果保留小数点后3位

应用题
70、输出100-900之间的所有奇数,并求出这些奇数的平均值输出

应用题
71、编写一个函数fun求出分数序列的前n项之和,再写一主函数测试其功能

应用题
72、输出1-500之间的所有偶数,并求出这些偶数的平均值输出。

应用题
73、依据下列提供的程序回答问题#includestdio.hint fun(int a,int b){ int r; r=a%b; while(r!=0) { a=b; b=r; r=a%b; } return(b);}void main(){ int num1, num2,a; printf(Input num1 num2: ); scanf(%d%d,&amp;num1,&amp;num2); printf(num1= %d,num2= %d\n\n,num1,num2); a=fun(num1,num2); printf(The maximun common divisor is %d\n\n,a);}(1)上述提供程序中,函数fun的功能是什么?(2)请依据提供的函数fun代码画出其中的传统流程图或N-S图。(3)在VC6.0环境下,运行上述程序时,若输入的数据序列为24,,36其输出结果是什么?

应用题
74、

应用题
75、编写程序打印下列图案

应用题
76、编写一个函数fun计算公式的前n项之和,再写一主函数测试其功能。

应用题
77、写一个函数将一个字符串中的大写字母转换为小写,再写一个测试函数测试其功能。不允许使用strlwr函数

应用题
78、编写一个函数计算函数的值,要求有输入输出提示,结果精度为3位

应用题
79、#include stdio.hdouble aver(int a[],int m){int i;double sum=0; for(i=0;i&lt;m;i++)sum+=a; return(sum/10);}void main(){int a,i,max;double sum=0; for(i=0;i&lt;10;i++) scanf(%d,&amp;a); printf(平均分数:%6.0lf\n ,aver(a,10)); max=0; for(i=1;i&lt;10;i++)if(a&gt;a) max=i; printf(最大值为:%d,最大值下标是:%d\n ,a,max+1);}(1) 所提供程序中,函数aver的功能是什么?(2)请依据提供上述程序,画出其的传统流程图或N-S图或自然语言描述。。(3)若输入的数据分别为:45,87,89,90,77,88,88,78,78,78,则在VC6.0环境下运行上述程序,其输出结果是什么?

应用题
80、依据下列提供的程序回答问题#include stdio.h#include math.hint f(int x){int i; for(i=2;i&lt;=sqrt(x);i++) if(x%i==0) return 0; return 1;}void main(){int a,i,n=0; for(i=0;i&lt;10;i++) scanf(%d,&amp;a); for(i=0;i&lt;10;i++) if( f(a)==1 ) { printf(%5d,a);n++; } printf(\n满足条件的数的个数为%d,n);}(1)上述提供程序中,函数f的功能是什么?(2)请依据提供的函数f的代码程序,画出其的传统流程图或N-S图或自然语言描述。。(3)在VC6.0环境下,运行上述程序时,若输入的数据序列为97,35,17,110,3,11,45,43,7,89其输出结果是什么?

应用题
81、写一个函数将一个字符串中的小写字母转换为大写,再写一个测试函数测试其功能。不允许使用strurp函数

应用题
82、利用随机函数产生20个100-300的随机整数放入数组a中,从键盘输入查找关键字word是否在数组a中。要求:(1)编写一个函数find(int word,int a[])查找关键字word是否在数组a中(2)主函数中产生随机整数,并调用find函数进行测试。(3)程序必须有相应的输入输出提示。

应用题
83、编写程序打印下列图案
更多学习资料请登录www.openhelp100.com

页: [1]
查看完整版本: 西南大学网络教育学院C语言17秋在线作业