欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    c语言试题及答案(19页).doc

    • 资源ID:36349251       资源大小:1,012.50KB        全文页数:19页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    c语言试题及答案(19页).doc

    -c语言试题及答案-第 18 页C语言课程综合复习资料一、单选题1. 在C语言中,字符型数据在内存中的存储形式是 A)原码 B)补码 C)反码 D)ASCII码2. 在C语言中,十进制数47可等价地表示为A) 2f B) 02f C) 57 D) 057 3. 设有定义:int x=12,n=5; 则表达式 x%=(n%2) 的值为 A) 0 B) 1 C) 2 D) 34. 设有定义语句:char str20=,"Beijing","中国石油大学",*p=str; 则printf("%dn",strlen(p+20); 输出结果是A)10 B) 6 C) 0 D) 205. 已定义以下函数: fun(int *p) return *p; 该函数的返回值是 A)不确定的值 B)形参p所指存储单元中的值C)形参p中存放的值 D)形参p的地址值6. C语言中,函数返回值的类型是由A)return语句中的表达式类型决定B)调用函数的主调函数类型决定C)调用函数时的临时类型决定 D)定义函数时所指定的函数类型决定7. 有以下函数定义: void fun( int n , double x ) 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是 A) fun( int y , double m ); B) k=fun( 10 , 12.5 );C) fun( 10 , 12.5 ); D) void fun( 10 , 12.5 );8. 以下选项中不能正确赋值的是A) char b=H,e,l,l,o,!;B) char b10;b="Hello!";C) char b10= "Hello!";D) char *str="Hello!";9. 若有以下定义:char s20= "programming",*ps=s;则不能代表字符g的表达式是A) ps+3 B)s3 C) ps3 D) ps+=3,*ps10. 当对两个字符串进行比较时,应该使用的函数是A) strcat B) strcmp C) strcpy D) strlen11. 若i为整型变量,则以下循环的次数是for(i=2;i=0;)printf(“%d”,i-); A) 无限次 B) 0次 C) 1次 D) 2次12. 以下关于数组的描述正确的是A) 数组大小固定,但是可以有不同类型的数组元素B) 数组大小可变,但是所有数组元素的类型必须相同C) 数组大小固定,所有元素的类型必须相同D) 数组大小可变,可以有不同类型的数组元素13. 以下能正确定义数组并正确赋初值的语句是 A)int N=5,bNN; B)int a12=1,3; C)int c2= 1,2,3,4; D)int d32=1,2,34;14. 设有定义 int a =1,5,7,9,11,13, *p=a+3; 则*(p-2) , *(a+4) 的值是A)5 11 B)1 9 C)5 9 D)有错误15. 已知char b5,*p=b; ,则正确的赋值语句是A)b=“abcd” ; B)*b=“abcd”; C) p=“abcd”; D)*p=“abcd”;16. 用数组名作为函数调用时的实参,则实际传递给形参的是A)数组的第一个元素值 B)数组中全部元素值C)数组的首地址 D)数组的元素个数17. 以下叙述中不正确的是A)在不同的函数中可以使用相同名字的变量B)函数中的形式参数是局部变量C)在一个函数内定义的变量只在本函数范围内有效D)在一个函数内的复合语句中定义的变量在本函数范围内有效18. 当对两个字符串进行比较时,应该使用的函数是A) strcat B) strcmp C) strcpy D) strlen19. 有如下定义:long m;char c;float x;double y;则表达式c+m*x/y的值的类型是A) long B) char C) float D) double20. 假设已定义 char c8= "test"; int i; 则下面的输出函数调用中错误的是A) printf("%s",c); B) for(i=0;i<8;i+) printf("%c",ci);C) puts(c) D) for(i=0;i<8;i+) puts(ci);21. 若有以下定义:char s20= "programming",*ps=s;则不能代表字符g的表达式是A) ps+3 B) s3 C) ps3 D) ps+=3,*ps22. 以下选项中不能正确赋值的是A) char b=H,e,l,l,o,!;B) char b10;b="Hello!";C) char b10= "Hello!";D) char *str="Hello!";23. 有以下函数定义: void fun( int n , double x ) 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是_。 A) fun( int y , double m ); B) k=fun( 10 , 12.5 );C) fun( 10 , 12.5 ); D) void fun( 10 , 12.5 );24从变量的作用域来分,可分为全局变量和局部变量,形参是A)局部变量 B)全局变量 C) 静态变量 D) 动态变量二、读程序,写出程序的执行结果1. #include <stdio.h>void main() int x=1,2,3; int s,i,*p=x; s=1; for(i=0;i<3;i+) s*=*(p+i); printf(“%dn”,s);答案62#include <stdio.h>char fun(char *s)if( *s >= ¢a¢ && *s <= ¢z¢ ) *s=*s-32;return *s;void main()char a20="Welcome",*p,ch;for(p=a;*p!=¢0¢p+)ch=fun(p);putchar(ch);答案WELCOME3#include <stdio.h>void main()int x=26587,x1,r,sum=0;x1=x;while(x>0)r=x%10;sum+=r;x/=10;printf( "Sum of the digits in %d is %d", x1,sum);答案Sum of the digits in 26587 is 284#include <stdio.h>int fun(int x)int y=1;static int z=4;z+=1;+y;return(x+y+z);void main()int i;for(i=1;i<=3;i+)printf("%3d",fun(i);8 10 125#include <stdio.h>void main() int x=3,y=4; int j;for(j=1 ; y>0 ; y - ) j=j*x;printf(“j=%dn”,j);运行结果:j=816#include <stdio.h>void main() int x,y; for(y=1,x=1; y<=20;y+) if(x>=8) break; if(x%2=1) x+=5; continue ; x-=3; printf("x=%d, y=%dn",x,y);运行结果:x=8,y=47 #include <stdio.h>void main() char x="language"char *ptr=x;while(*ptr) printf("%cn",*ptr-32); ptr+;运行结果:LANGUAGE8. #include <stdio.h> void main() int x=5,6,7; int s=1,i,*p=x; for(i=0;i<3;i+) s*=*(p+i); printf(“%dn”,s);运行结果:2109#include <stdio.h>int fun(int x) return(x>0 ? x : -x);void main() int a=12; printf(“%d, %dn”,a,fun(a) ;运行结果:12,1210 #include <stdio.h>void ex( ) static int x=3 ; -x ; printf(“%d”,x) ; void main ( ) ex( ); ex( ); 运行结果:2111. #include <stdio.h>void main() int i=0,a=0;while( i<20 ) for(;)if(i%10)= =0) break;else i- -; i+=11; a+=i; printf("%dn",a);3212#include <stdio.h>void main()int a34=1,2,3,4,9,7,10,6,-1,8,-5,5;int i,j,row=0,colum=0,max;max=a00;for(i=0;i<=2;i+)for(j=0;j<=3;j+)if(aij>max)max=aij;row=i;colum=j;printf("max=%d,row=%d,colum=%d",max,row,colum);max=10 ,row=1,colum=213. #include <stdio.h>int f(int b, int m,int n) int i,s=0; for(i=m;i<n;i+=2) s+=bi ; return s; void main() int x, a=1,2,3,4,5,6,7,8,9,10; x=f(a,3,8); printf("%dn",x); 1814#include <stdio.h>void swap(int b) int *p,*p1,*p2; p1=&b0 ;p2=&b1;p=p1; p1=p1+1; p2=p;void main() int a=5,9;printf("%d,%dn",*a,*(a+1); swap(a); printf("%d,%dn",a0,a1);5,915. #include <stdio.h>int b=3;int fun(int *a) b+=*a; return(b);void main() int a=2, b=2; b+=fun(&a);printf(“%dn”,b); 716. #include <stdio.h>void main() int a10,*p,*s,i; for(i=0;i<10;i+) scanf(%d”,a+i); for(p=a,s=a;p-a<10;p+) if(*p>*s)s=p; printf(“max=%d,index=%dn”,*s, s-a);简述上列程序完成的功能:查找数组中最大值并记录元素下标17 #include <stdio.h>void main() int x,y; for(y=1,x=1; y<=20;y+) if(x>=8) break;if(x%2=1) x+=5; continue ; x-=3; printf(“x=%d, y=%dn”,x ,y); 运行结果:x=8,y=418 #include <stdio.h>#define N 3void zz(int xNN) int i,j,t;for(i=0;i<N;i+)for(j=0;j<i;j+) t=xij; xij=xji; xji=t; void main() int strNN=1,2,3,4,5,6,7,8,9, i,j; zz(str);for(i=0;i<N;i+) for(j=0;j<N;j+) printf(“%3d”,strij) ;printf("n") ; 运行结果:1 4 7 2 5 83 6 919#include <stdio.h>void main ( ) char a20= "abcXYZ", c ; int i, j;j= strlen(a)-1 ; for (i=0; j>i; i+,j-) c=*(a+i); *(a+i)=*(a+j); *(a+j)=c; puts(a); 运行结果:ZXYcba20 #include <stdio.h>int a=100,b=200;void f( ) printf(“%d,%dn”,a,b); a=1;b=2; void main() int a=5,b=7 ; f( );printf(“%d,%dn”, a,b) ; 运行结果:5,721 #include <stdio.h>int d=1 ;int fun(int p) static int d=3 ; d+=p; printf("%3d" , d) ; return(d) ; void main( ) printf("%3dn" , fun(2+fun(d) ; 运行结果:5,12,1222#include <stdio.h>void main() char x="123456789",*p=x ; int i=0; while(*p) if(i%2=0) *p='*; p+; i+; puts(x);运行结果:*2*4*6*8*三、编程题1编程输入实数x,计算下面函数的值,并输出y值。 x 2 x<1 y= 3x-1 1 £ x £ 10 x > 10程序结果:#include <stdio.h>void main() int x,y; scanf(“%d”,&x); if(x<1) y=x*x; else if(x>=1&&x<=10)y=3*x-1; else y=x/5; printf(“x=%d,y=%dn”,x,y);2编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,并输出统计结果。程序结果:#include<stdio.h>#include<conio.h>void main()                     /*主函数*/char c;                            /*定义变量*/int m=0,n=0,a=0,b=0;printf("请输入任意字符串.n");   /*输入提示部分,提示输入*/while(c=getchar()!='n')       /*循环语句,将由键盘输入的非'n'字符赋值给c*/   if(c>=65&&c<=90)|(c>=97&&c<=122)    /*第一个选择语句,统计英文字符个数*/       m=m+1;            else if(c=32)                          /*第二个选择语句,统计空格字符的个数*/        n=n+1;      else if(c>=48&&c<=57)                        /*第三个选择语句,统计数字字符的个数*/       a=a+1;      else                                        /*统计其他字符的个数*/    b=b+1;printf("%d%d%d%d",m,a,n,b);                    /*输出最后统计结果*/    getch();                                    /*输出结果后屏幕停留*/3. 编写打印如下图形的程序 (必须用循环语句实现) 程序结果:#include<stdio.h> main( )int n,i,j;printf(“n=%dn”);scanf(“%d”,&n);for(i=0;i<n;i+) for(j=0;j<n-1-i;j+) Printf(“ ”); for(j=0;j<i+1;j+) Printf(“*”); printf(“n”);4. 编写程序,从键盘上任意输入20个整数,存入一个数组中,然后输出这些数中最大数及其下标以及最小数及其下标程序结果:#include<stdio.h> void main( )int a20,i,max,min,num1,num2;for(i=0;i<20;i+)printf(“input the number%d:”,i);scanf(“%d”,&ai);printf(“n”);for(i=0;i<20;i+) If(ai<= a0) min=ai;Num1=i; Else max=ai;num2=i;printf(“min=%d,num1=%dn”,min,num1);printf(“max=%d,num2=%dn”,max,num2);5. 编程打印下列的杨辉三角形。(设8行) 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 程序结果:#include <stdio.h>#define N 11void main() int i,j,aNN; /*数组为11行11列,0行0列不用*/ for(i=1;i<N;i+) ai1=1; /*使第1列元素的值为1*/ aii=1; /*使对角线元素的值为1*/ for(i=3;i<N;i+) /*从第3行开始处理*/ for(j=2;j<=i-1;j+) aij=ai-1j-1+ai-1j; for(i=1;i<N;i+) /*输出数组各元素的值*/ for(j=1;j<=i;j+) printf(“%6d”,aij); printf(“n”);printf(“n”); 6求分段函数的值 程序结果:#include<stdio.h> #inclde<math.h>main() double x ,y; scanf(“%lf”,&x); if(x<0) y=log(x*x); else if(x=0) y=1;else y=1+exp(x);printf(“Y=%lf”,y);7编程打印以下图形 (要求用循环控制语句实现)程序结果#include<stdio.h>main()int i,j;for(i=1;i<=6;i+)for(j=1;j<=6-i;j+)printf(" ");for(j=1;j<=i;j+)printf("& ");printf("n");C语言课程综合复习资料答案一、单选题:1D 2D 3A 4A 5D 6B 7C 8B 9A 10B 11B 12C 13D 14A 15C 16C 17D 18B 19D 20D 21A 22B 23C 24A二、读程序写出程序执行结果:1、62、WELCOME3、Sum of the digits in 26587 is 284、8 10 125、j=81 6、x=8,y=4 7、LANGUAGE8、210 9、12,12 10、2111、32 12、max=10,row=1,colum=2 13、18 14、5,9 15、7 16、查找数组中最大值并记录元素下标17、x=8,y=418、1 4 7 19、ZYXcba2 5 8 20、5,73 6 9 21、5,12,1222、*2*4*6*8*三、编程题1、#include <stdio.h>void main() int x,y; scanf(“%d”,&x); if(x<1) y=x*x; else if(x>=1&&x<=10)y=3*x-1; else y=x/5; printf(“x=%d,y=%dn”,x,y);2. #include<stdio.h>#include<conio.h>void main()                     /*主函数*/char c;                            /*定义变量*/int m=0,n=0,a=0,b=0;printf("请输入任意字符串.n");   /*输入提示部分,提示输入*/while(c=getchar()!='n')       /*循环语句,将由键盘输入的非'n'字符赋值给c*/   if(c>=65&&c<=90)|(c>=97&&c<=122)    /*第一个选择语句,统计英文字符个数*/       m=m+1;            else if(c=32)                          /*第二个选择语句,统计空格字符的个数*/        n=n+1;      else if(c>=48&&c<=57)                        /*第三个选择语句,统计数字字符的个数*/       a=a+1;      else                                        /*统计其他字符的个数*/    b=b+1;printf("%d%d%d%d",m,a,n,b);                    /*输出最后统计结果*/    getch();                                    /*输出结果后屏幕停留*/3. #include<stdio.h> main( )int n,i,j;printf(“n=%dn”);scanf(“%d”,&n);for(i=0;i<n;i+) for(j=0;j<n-1-i;j+) Printf(“ ”); for(j=0;j<i+1;j+) Printf(“*”); printf(“n”);4. #include<stdio.h> void main( )int a20,i,max,min,num1,num2;for(i=0;i<20;i+)printf(“input the number%d:”,i);scanf(“%d”,&ai);printf(“n”);for(i=0;i<20;i+) If(ai<= a0) min=ai;Num1=i; Else max=ai;num2=i;printf(“min=%d,num1=%dn”,min,num1);printf(“max=%d,num2=%dn”,max,num2);5. #include <stdio.h>#define N 11void main() int i,j,aNN; /*数组为11行11列,0行0列不用*/ for(i=1;i<N;i+) ai1=1; /*使第1列元素的值为1*/ aii=1; /*使对角线元素的值为1*/ for(i=3;i<N;i+) /*从第3行开始处理*/ for(j=2;j<=i-1;j+) aij=ai-1j-1+ai-1j; for(i=1;i<N;i+) /*输出数组各元素的值*/ for(j=1;j<=i;j+) printf(“%6d”,aij); printf(“n”);printf(“n”);6.7略

    注意事项

    本文(c语言试题及答案(19页).doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开