c语言程序设计基础模拟试卷答案,C语言程序设计模拟试题A附答案

《C语言程序设计模拟试题A附答案》由会员分享,可在线阅读,更多相关《C语言程序设计模拟试题A附答案(21页珍藏版)》请在人人文库网上搜索。

1、A 语言程序设计模拟试卷C 分)20一、单项选择题(每题2分,共 。1、下列有关C语言的叙述中错误的是(D) A) C语句必须以分号结束 程序中有且只有一个主函数B) 任何一个C C) 复合语句在语法上可被看作一条语句 程序中对数据的任何操作都可由运算符实现D) C )。2、以下不能定义为用户标识符的是(C D) C) 2ong A) MAIN B) _HJ LINE1 )。C3、以下能正确定义一维数组的是( a5=”012345”; B) int A) int a5=0,1,2,3,4,5; a5=0,1,2,3,4,5;D) char C) char a =”012345”; )。C4、执。

2、行下列程序段后输出的结果是( x = 9; while (x 7) - -; printf(“*”); x D) * C) * A) * B) * char str110 = “ABCDE”, str210 = “xyz”;、设5 。D)strlen(strcpy(str1, printf(“%d”, str2); 后的输出结果是(则执行语句 解析: 后面有字符串结束符 XYZ, Z strcpy(str1,str2); 后,str1 里是 执行后,函数返回的是 str1, strcpy(str1,str2); 而 因为str1 里是新值 XYZ, 3。strlen(strcpy(str1,s。

3、tr2) 就是 strlen(str1的新值),所以得strlen 统计到字符串结束符以前,即,不计入字符串结束符。 A) 9 B) 8 C) 5 D) 3 6、若用数组名作为函数调用的实参,则传递给形参的是(A)。 数组第一个元素的值 B) 数组的首地址 A) 数组元素的个数 D) C) 数组中全部元素的值 )。程序中,若未在函数定义时说明函数类型,则函数默认的类型为(C7、在C char) D)double C)int A)void B 。)、下面不能正确进行字符串赋值操作的语句是(C8 s=ABCD;B) char s5; A) char s5=ABCD; D) char *s=ABCD。

4、; C) char *s;?屆; :这样理论上的没错的把s指针指向字符串可以改变s解析指针但不能改变其指向的值正确的应该是这样 char s = ABCDEF; 或char s8;strcpy(s, ABCDEF); 9、设有说明int s5=1,3,5,7,9; int *p=s; 则下列表达式中值为3的是 (C)。 A)+p B)+(*p) C) *(+p) D) *(p+=2) : 解析A是把p得地址后移一个int单位长度,即使p指向数组的第二个元素。 B是取得p当前指向的元素值然后加1,即1+1=2; C是先移动p,使其指向第二个元素,然后取得当前指针指向的元素值,即3. D是先使p指。

5、向数组的第三个元素,然后去的当前指针指向的元素的值,即5。 10、下面程序的输出结果是(B)。 int m=13; int fun( int x, int y) int m=3; return( x*y-m); main( ) int a=7,b=5; printf(“%dn”, fun(a,b)/m); A) 1 B) 2 C) 3 D) 10 二、填空题。(每空2分,共30分) 1.设有变量说明语句: int x=1,y=2; 则执行下述printf语句的输出结果是__1.000000_ printf(%fn,1.0+x/y); 2.执行下述程序: #include main() int 。

6、x,y; scanf(-%*2s_x001D_,&x,&y); printf(%dn,x+y); 若从键盘输入: 12345671 则程序的输出结果是__17__。 :x,y为int类型,x的长度为2,y的长度为1解析,即x为12,y为5,故x+y=17 3.以下程序的功能是:从键盘上输入若干名学生的成绩(百分制,可带小数,以输入负数或0为结束标志),统计并输出最高成绩和最低成绩。请填空。 #include main() float x,amax,amin; scanf(%f,&x); amax=x; amin=x; while (x0) if (xamax) amax=x; else if 。

7、(x main() int a6,i; for (i=0;i3)%5; printf(=,ai); printf(); ,01(i3)为真时值为,反之为解析:6.执行下述程序的输出结果是___6___。 #include main() int a=2,4,6,*ptr=&a0,x=8,y,z; for (y=0;y main() int a2=10,20,30,40,50,60,(*p)2; p=a; printf(%dn,*(*(p+2)+1); 8.执行以下程序的输出结果是__10_。 #include main() int s,i,sum(); for (i=1;i main() int。

8、 a10=1,2,3,4,5,6,7,8,9,10,i,n=10; invert(a,n-1); for (i=0;is_ k=*s; *s=*t; *t=k; s+; t-; 12.若有以下定义和说明,则结构体变量w在内存中所占的字节数是_____ union aa float x; float y; char c6; ; struct st union aa v; float w5; double ave; w; 13.执行下述程序的输出结果是______ _______。 #include struct str float x; char *y; *m; struct str group。

9、3= 95.0,Li, 82.5,Wang, ?卜湵 ; main() m=group; printf(%.lf,%sn,m-x,m-y); 下面的程序用来统计某文件中字符的个数。请填空。14. #include #include main() FILE *fp; long num=0; if (fp=fopen(nam.dat,)=NULL) printf(Cant open this file!n); exit(0); while (____ _____) fgetc(fp); num+; printf(um=%dn,num); fclose(fp); 15.执行下述程序后,输出结果为__。

10、____。 #include #define FUN1(a,b) a+b #define FUN2(a,b) a-b #define CAL(a,b) a*b+a+3 main() printf(%dn,CAL(FUN1(3,5),FUN2(4,5); 三、修改程序(在程序出错的语句下划横线并标号,把修改后的语句写在程序之后的横线上。每小题5分,共10分) 1下列给定程序的功能是:读入一个整数(2 #include IsPrime(int n); int i,m; m=1; for ( i=2; i #include void fun(char *p,char *q,char *c); int。

11、 k=1; while(*p!=*q) if (*p void main() char ch; int k=0; for(ch=A;ch 2. void main( ) int k=0; char c=A; do switch (c+) case A: k+; break; case B: k-; case C: k+=2; break; case D: k=k%2; break; case E: k=k*10; break; default: k=k/3; k+; while(c 3. void main() int a6=12,4,17,25,27,16,b6=27,13,4,25,23,。

12、16,i,j; for(i=0;i 4. void main() int a8=1,0,1,0,1,0,1,0,i; for(i=2;i=0) 2*x 编程实现。 2、输入10个学生3门课的成绩,用函数实现:找出最高的分数所对应的学号和成绩。 模拟试卷十一参考答案: 一、单选题 1) D 2) C 3) C 4) C 5) D 6) A 7) C 8) C 9) C 10) B 二、填空题 1、1.000000 2、17 3、x0.0 4、k=k+1 5、-3 -4 0 4 4 3 6、6 7、60 8、10 9、int *z 10、*(b+) 11、ts 12、42 13、95, Li 14。

13、、fgetc(fp)!=EOF 15、29 三、改错题 1、IsPrime(int n);改为IsPrime(int n) scanf(“%d”,k); 改为scanf(“%d”,&k); if !(n%i) m=0; continue; 改为 if (!(n%i) ) m=0; continue; if (!(k%j)&(IsPrime(j) 改为if(!(k%j)& (IsPrime(j) 2、studio.h改为 stdio.h void; fun(char *p,char *q,char *c);改为void fun(char *p,char *q,char *c) k=1改为k=0 。

14、while (*p!=*q)改为 while(*p)|(*q) k+后添加一个 四、阅读程序 1、ACEG 2、8 3、4252716 4、1022571320 五、编程题 1、 #include main() float x,y; scanf(%f ,&x); if(x struct student int num; float score3; stu10; void chosescore(struct student *stu,int n) int i=0,j=0,k=0; float temp; for(i=0;i3;i+) temp=stu0.scorei; k=stu0.num; for(j=1;jn;j+) if(tempstuj.scorei) temp=stuj.scorei; k=stuj.num; printf(%d %fn,k,temp); void main() int i; for(i=0;i10;i+) printf(put in %d student informtionn,i+1); scanf(%d%f%f%f, &stui.num,&stui.score0,&stui.score1,&stui.score2); chosescore(stu,10);。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.以下的选项能正确表示Java语言的一个整型常量的是( )。 A) 12. B) -20 C) 1,000 D) 4 5 6 2.以下选项,合法的赋值语句是( )。 A) a = = 1; B) ++ i; C) a=a + 1= 5; D) y = int ( i ); 3.若所用变量都已正确定义,以下选项,非法的表达式是( )。 A) a != 4||b==1 B) 'a' % 3 C) 'a' = 1/2 D) 'A' + 32 4.若有定义int a = 2;则执行完语句a += a -= a * a; 后,a的值是( )。 A) 0 B) 4 C) 8 D) -4 5.设有定义语句int a[]={66,88,99}; 则以下对此语句的叙述错误的是( )。 A) 定义了一个名为a的一维数组 B) a数组有3个元素 C) a数组的下标为1~3 D)数组的每个元素是整型 1.在Java语言,逻辑常量只有true 和 ___________ 两个值。 2.表达式1/2*3的计算结果是_________。 3.以下方法fun的功能是求两参数之和。 int fun ( int a, int b ) { __________________; } 4.面向对象技术的对象具有状态,行为和_________等三个基本属性。 5.面向对象程序设计方法最重要的特性是继承、封装、__________和多态。 1.Java的的字符使用的是 16 位的Unicode 编码。 2.类是同种对象的集合和抽象。 3.Java 仅支持类间的单重继承。 4.接口是由常量和抽象方法组成的特殊类。 5.构造函数的方法名可由编程人员任意命名。 class ____________ // 定义名为myclass的类 { __________ int var=666; static int getvar() { return var; } } 2.下面是用户程序对 Applet 类方法 paint( ) 的重新定义。 __________ void paint(Graphics g) { g.____________("你好!",10,20); } 1. import java.awt.Graphics; import java.applet.Applet; public class BreakTest extends Applet { public void paint( Graphics g ) { int count, xPos = 25; for ( count = 1; count <= 10; count++ ) { if ( count == 8 ) break; g.drawString( " " + count, xPos, 25 ); xPos += 10; } } } 问题: 1)程序的输出结果是什么? 2)方法调用 g.drawString( " " + count, xPos, 25 ); 的第一个实参为什么要有串 " " ?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值