C语言2016下半年第二次作业_第1页
C语言2016下半年第二次作业_第2页
C语言2016下半年第二次作业_第3页
C语言2016下半年第二次作业_第4页
C语言2016下半年第二次作业_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、<C语言程序设计>第2次作业一、 单项选择题1若有以下定义: int a=3, 4, 5, 6, 7, 8, 9, 10, 11, *p=a;则值为5的表达式是(B)。A)p+=5, *(p+1)B)p+=1, * +pC)p+=4, *p+D)p+=1, + *p2下面函数调用语句含有实参的个数为(B)fun( ( a, b, c, d ), ( m, n ), (f, g ) );A)1B)3C)4D)23函数形式正确的是(D)。A) double myfun( int x, int y)B) int myfun( int x, y) m=x+y; return m; int

2、m; C)int myfun( int x, int y)D) int myfun( int x, int y) int x, y; double m; int m; m=x+y; return m; m=x+y; return m; 4不正确的字符串赋值或赋初值方式是(C)。A)char *str; str=”string”;B)char str7=s, t, r, i, n, gC) char str10; str=”string”;D)char str=”string”; str2=”12345678”; strcpy(str2, str1);5以下程序的输出结果是(B)。#includ

3、e <stdio.h>main() char str="SSSWLIA", c; int k; for (k=2; (c=strk)!='0' k+) switch (c) case 'I': +k; break; case 'L': continue; default: putchar(c); continue; putchar('*');A)SSW*B)SW*C)SW*AD)SW6.以下程序的输出结果是(B)。#include <stdio.h>int w=3;fun( int k)

4、 if ( k=0) return w; return ( fun(k -1 )*k);main() int w=10; printf("%dn", fun(5)*w);)360B)3600 C)1080D)12007. 以下程序的输出结果是(D)。#include <stdio.h>int w=3;f( int a) int b=0; static int c=3; b+; c+; return ( a+b+c);main() int a=2, i; for (i=0; i<3; i+) printf("%d ", f(a);A)7

5、7 7B)7 10 13C)7 9 11D)7 8 98以下程序的输出结果是(D)。#include <stdio.h>main() int a=1,2,3,4,5,6, *p; p=a; *(p+3)+=2; printf("%d, %d n ", *p, *(p+3);A)0, 5B)1, 5C)0, 6D)1, 69以下程序的输出结果是(B)。#include <stdio.h>#define PT 5.5#define S(x) PT*x*xmain() int a=1, b=2; printf("%4.1fn ", S(

6、a+b); A)49.5B)9.5C)12.5D)33.510下面程序段的输出结果是(C)。 #include <stdio.h>#define LETTER 1main() char str20="Language", c; int i=0; while ( c=stri)!='0') i+; # if (LETTER) if (c>='a'&& c<='z') c=c-32; #else if (c>='A'&& c<='Z'

7、;) c=c+32; #endif printf("%c", c); A)LanguageB)languageC)LANGUAGED)lANGUAGE11若有说明:char *s=“FORTRAN”, “BASIC”,”PASCAL”,”JAVA”,”C”; 则表达式 *s1>*s3比较的是(C)。A)字符F和字符PB)字符串BASIC和字符串JAVAC)字符B和字符JD)字符串FORTRAN和字符串PASCAL12如下程序的输出结果是(B)。#include <stdio.h>main() char a20="chinese" ; c

8、har *p=a; for (; p<a+7; p+=2) putchar(*p);A)chineseB)cieeC)chineD)cie13. 若有定义: int a23;则对a数组的第i行第j列(假设i,j已正确说明并赋值)元素值的正确引用为(A)。A)*(*(a+i)+j)B)(a+i)jC)*(a+i+j)D)*(a+i)+j14. 若有以下定义和语句,则对a数组元素的正确引用为(C)。int a23,(*p)3;p=a;A)(p+1)0B)*(*(p+2)+1)C)*(p1+1)D)p1+215.若以下main函数经过编译、连接后得到的可执行文件名为echo.exe,若希望在系

9、统的命令状态下输入某一命令行后得到的输出是chian tianjin,则命令行的内容应是(B)。A)chian tianjinB)echo chian tianjinC)echo D)echochian tianjin chinatianjin16以下对结构体变量stu中成员age的非法引用是(B)。struct student int age; int num; stu, *p;p=&stu;A)stu.ageB)student.ageC)p->ageD)(*p).age17已知学生记录描述为: struct DATE int year; int month; int day;

10、struct student int no; /*学号*/ char name10; /*姓名*/ char sex; /*性别*/ struct DATE birth; ;struct student s;设变量s中的“生日”应该是“1984年11月11日”,下列对“生日”的正确赋值方式是(D)。A)year=1984;B)birth.year=1984; month=11; birth.month=11; day=11; birth.day=11;C)s.year=1984;D)s.birth.year=1984; s.month=11; s. birth.month=11; s.day=

11、11; s.birth.day=11;18若有以下定义的语句:union data int i; char c; float f;a;int n;则以下语句正确的是(A)。A)a.i=5B)a=2,a,1.2C)printf(“%d”,a)D)n=a19. 表达式a<b|c&d的运算顺序是(D)。A),&,<, |B),|,&,<C),&,|,<D),<,&, |20若执行fopen函数时发生错误,则函数的返回值为(B)。A)地址值B)0C)1D)EOF二、 填空题(本大题共11小题,每空2分,共30分)1.int arr2

12、0; 则arri的地址可表示为 &arri, arr+i 。2.函数swap(int x, int y)可完成对x和y值的交换。在运行调用函数中的如下语句后,a0和a1的值分别为 a0=1 a1=2 ,原因是 实参和形参是值传递 。 a0=1; a1=2; swap(a0,a1);3.若有定义 int a 34=1,2, 0, 4,6,78,10; 则初始化后a12得到的初值是 0 ,a21得到的初值是 6 。4函数delete_string( char s ,char c)将字符串s中所出现的与变量c相同的字符删除,请填空。delete_string(char *s, char ch

13、) /*定义外部函delete_string*/int i,j; for (i=j=0;*(s+i)!='0'i+)if (*(s+i)!=ch) *(s+j+)=*(s+i) ; *(s+j)='0'5.下面程序段将输出 computer,请填空。 int i, j=0; char c =”its a computer”; for (i=0; i<=7 ;i+) j=i+7 ; printf(“%c”,cj;)6. 如下程序段的输出结果是 123 。 #include <stdio.h>main() char str="1a2b3c

14、" ; int i; for (i=0; stri!='0'i+) if (stri>='0'&&stri<='9') printf("%c",stri);7如下程序段的输出结果是 EFGH IJKL 。#include <stdio.h>main() char str10="ABCD","EFGH","IJKL","MNOP",k; for (k=1; k<3;k+) printf(&quo

15、t;%sn",strk);8如下程序段的输出结果是 n1=1, n2=6 。#include <stdio.h>main() int a=1,2,3,4,5,6, *p,i; p=a; *(p+3)+=2; printf("n1=%d, n2=%dn",*p, *(p+3);9阅读下面函数func,其功能是计算用户输入的整数num的各位数字之积。填空使程序完整。#include <stdio.h>long func( long num ) long k=1; if (num<0) num=-num; do k*=num%10; num

16、/=10; while ( num!=0 ); return(k);main() long n; printf("Please input a number"); scanf("%ld",&n); printf("Result is : %ld", func(n);10以下程序的输出结果是 120 。#include <stdio.h>fun(int b, int n) int i, r=1; for (i=0; i<=n; i+) r=r*bi; return(r);main() int x, a=2,3,

17、4,5,6,7,8,9; x=fun(a,3); printf("%dn",x);11下面程序段的输出结果是 FO 。#include <stdio.h>main() char *p="LOOK", "OUT","A","FM" int i; for (i=3; i>=0; i-, i-) printf("%c",*pi);12.建立一个磁盘文件,文件名和内容由键盘输入。#include <stdio.h>#include <stdlib.

18、h>void main () char ch, fname20; _FILE *fp_; scanf("%s",fname); if (fp=fopen(_fname_,"w")=NULL) exit(0); ch=getchar(); while (ch!='*') fputc(ch,fp); putchar(ch); ch=getchar(); fclose(_fp_);三、 程序设计题1定义一个含有30个整型元素的数组,按顺序分别赋予从2开始的偶数,然后按顺序每5个数求出一个平均值,放在另一个数组中并输出。解: n=0n=1

19、n>1void main() int a31; float b6;int i,k=1;while (k<31)k=1; i=1;while (i<=5) bi=(ak+ak+1+ak+2+ak+3+ak+4)/5;for (i=1; i<=5; i+) printf("%fn",bi);󰀀2从键盘输入一个字符串和一个字符,把此字符串中偶数位的字符变为输入的字符,要求用函数实现字符串偶数位字符的改变,在主函数中输入字符串和字符,并输出偶数位改变的字符串。解:#include <stdio.h>#include <str

20、ing.h>#define MAX 80void convert( char s, char ch) int i=0;while (si!='0') if (i%2=0) si=ch;void main() char sMAX, ch;gets(s);scanf("%c",&ch);convert(s,ch);puts(s);3编程将一个输入的字符串逆序显示输出。在主函数中输入字符串并输出逆序存放的字符串,在函数中实现字符串的逆序存放。例如:输入“abcdef”, 输出”fedcba”(此题是书上p202页的8.5题)解:#include &l

21、t;stdio.h>#include <string.h>void inv(char *x, int n ) char *p, m,temp, *i, *j;m=(n-1)/2;i=x; j=x+n-1; p=x+m;for (; i<p; i+, j-) temp= *i; *i=*j; *j=temp;void main() i+; k=k+5;i+; ak=2*k; k+;gets(str);inv(str, strlen(str);puts(str);4用递归方法求n阶勒让德多项式的值,递归公式为:(此题是书上p202页的8.13题)解:#include <stdio.h>void main()int x,n;float p(int,int);printf("ninput n & x:");scanf("%d,%d",&n,&x);printf

温馨提示

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

评论

0/150

提交评论