收藏 分享(赏)

C语言程序设计-自测练习(2013第一稿).doc

上传人:dzzj200808 文档编号:2634048 上传时间:2018-09-24 格式:DOC 页数:53 大小:158KB
下载 相关 举报
C语言程序设计-自测练习(2013第一稿).doc_第1页
第1页 / 共53页
C语言程序设计-自测练习(2013第一稿).doc_第2页
第2页 / 共53页
C语言程序设计-自测练习(2013第一稿).doc_第3页
第3页 / 共53页
C语言程序设计-自测练习(2013第一稿).doc_第4页
第4页 / 共53页
C语言程序设计-自测练习(2013第一稿).doc_第5页
第5页 / 共53页
点击查看更多>>
资源描述

1、1.7 自测练习1. C 语言是一种( ) 。A. 低级语言 B. 高级语言 C. 机器语言 D. 汇编语言2. 以下描述中错误的是( ) 。A. 不同的计算机可以理解的机器语言也不同B. 机器语言和汇编语言都和具体的硬件平台相关,因此统称为低级语言C. 高级语言编写的程序较为简洁,可读性较好D. 编译方式执行速度较快,且每次修改源程序后不必重新进行编译处理3. 以下描述中正确的是( ) 。A. C 语言编程的一个显著特点是以计算机工作方式来思考和组织程序代码B. 面向过程的程序设计方法以提高执行效率、少占内存作为目标C. 面向过程的程序设计方法一般采用结构化和模块化设计思想D. 面向对象的程

2、序设计方法提高了软件开发的可重用性,但增加了程序开发的复杂性4. 以下描述中错误的是( ) 。A. 编写 C 程序的过程通常称为编辑,结果将得到 .c 源文件B. C 源程序经过编译,将生成本机目标代码文件,扩展名为 objC. 链接过程通常是将目标代码文件和程序中使用到的其他代码连接在一起D. 运行结果不对,通常是由于语法错误引起的5.语句“printf(“WelcomentonC!“);”将输出( ) 。A. 1 行 B. 2 行 C. 3 行 D. 4 行6.有以下程序#include “stdio.h“void main( ) float a=b=2, result;result=a/

3、b;printf(“result=%fn“, result); 正确的说法是( ) 。A. 因为变量声明问题导致编译出错B. 因为 result=a/b;语句有误导致编译出错C. 输出结果为 result=2.000000D. 输出结果为 result=1.000000 7.下列程序运行时输入 3 4,则程序的输出结果是( ) 。#include “stdio.h“int multi(int a,int b) return a*b; void main() int x,y,t;printf(“Please input two integers (x and y): “);scanf(“%d%d

4、“, t= multi(x,y);printf(“%dn“,t); A. 3 B. 4 C. 7 D. 128.以下程序的运行结果是( ) 。#include “stdio.h“#define RATE 0.05void main( ) double salary,tax;salary=5000.00;tax=(salary-3000)*RATE;printf(“The result is: %.2fn“, salary-tax); A. 5000.00 B. 100.00 C. 4900.00 D. 3000.009.以下程序的运行结果为( ) 。#include “stdio.h“void

5、 main() printf(“%dn“,sizeof(char)+sizeof(int)+sizeof(double); A. 148 B. 1,4,8 C. 144 D. 1310.有以下程序 #include “stdio.h“void main() char ch;printf(“输入一个大写字母:“);scanf(“%c“,digit=ch-A;printf(“%c, %dn“,digit+a,digit); 若程序运行时输入 B ,则程序的输出结果是( ) 。 A. 编译时出错 B. b,B C. b,1 D. B,12.5 自测练习1.已定义: int k,a,b;unsigne

6、d long w=5;double x=1.42, 不正确的表达式是( )。A.x%(-3) B.w+= -2 C.k=(a=2,b=3,a+b) D.a+=a-=(b=4)*(a=3)2. 单精度变量 x=3.0,y=4.0,下列表达式中的 y 的值为 9.0 的是( )。A. y/=x*27/4 B. y+=x+2.0 C. y-=x+8.0 D. y*=x-3.03.已定义 int num=sum=7, (sum=num+, sum+, +num)表达式的结果是( )。 A.7 B.8 C.9 D.104.若有定义:int a=7; float x=2.5,y=4.7; 则表达式 x+a

7、%3*(int)(x+y)%2/4 的值是( )。A2.500000 B4.50000 C3.500000 D0.000005.若 x、i、j 和 k 都是 int 型变量,则执行下面表达式 x=(i=4,j=16,k=32)后 x 的值为( )。A4 B16 C32 D526. 设有定义:int x=2;,以下表达式中,值不为 6 的是( )。Ax*=x+1 Bx+,2*x Cx*=(1+x) D2*x,x+=27. 若变量 a、i 已正确定义,且 i 已正确赋值,合法的语句是( )。A. a=1 B. +i; C. a=a+=5; D. a=int(i); 8. 执行下面程序段的输出结果是

8、( )。int x=023,y=5,z=2+(y+=y+,x+8,+x); printf(“%d,%dn“,x,z); A18,13 B19,14 C22,21 D20,229. 已知 i、j、k 为 int 型变量,若从键盘输入:1,2,3,使 i 的值为 1,j 的值为 2,k 的值为 3,以下选项中正确的输入语句是( )。 Ascanf(“%2d %2d %2d“, Bscanf(“%d %d %d“,Cscanf(“%d,%d,%d“, Dscanf(“i=%d,j=%d,k=%d“,10. 执行下面程序段的输出结果为( )。int x=13,y=5; printf(“%d“,x%=(

9、y/=2); A3 B2 C1 D03.6 自测练习1.为表示关系 xyz,应使用 C 语言表达式( ) 。A. (x=y) int m=2,n=2; a=(m=ab) printf(“%d“,n);A. 0 B. 1 C. 2 D. 57.执行下列程序段后,变量 m 的值是( ) 。int w=1,x=2,y=3,z=4,m;m=(w3) x=3; else if(a0) y=1; else y=-1;printf(“n%d n“,y); A. 15 B. 0 C. -1 D. 14.8 自测练习1.以下不构成无限循环的语句或语句组是( ) 。 A. n=0; do+n;while(n vo

10、id main() int y=9; for( ; y0;y-) if(y%3=0) printf(“%d“,-y); 程序的运行结果是( ) 。 A. 741 B. 963 C. 852 D. 8754219.有以下程序 #include void main() int k=5,n=0; do switch(k) case 1: case 3:n+=1;k-;break; default:n=0;k-; case 2: case 4:n+=2;k-;break; printf(“%d“,n); while(k0 for (i=1;+i) if (i%2=0) x+;continue; if

11、(i%5=0) y+;break; printf (“ %d,%d“,x,y); 程序的输出结果是( ) 。 A. 2,1 B. 2,2 C. 2,5 D. 5,25.5 自测练习1.若有定义 int num10;则对数组元素的正确引用是( ) 。 A. num10 B. num(5) C. num2.5 D. num232.下面关于数组的叙述,正确的是( ) 。 A. 数组元素的数据类型都相同B. 数组不经过定义即可使用C. 同一数组中会出现不同类型的数组元素D. 数组名等同于第一个元素3.以下定义合法的是( ) 。 A. int a=“string“; B. int a5=0,1,2,3,

12、4,5;C. char s=“string“; D. char a( )=0,1,2,3,4,5;4.以下定义正确的是( ) 。 A. int num; B. #define N 100int numN;C. int num0100; D. int N=100;int numN;5.以下不能正确定义二维数组的是( ) 。 A. int a22=1,2; B. int a2=1,2,3,4;C. int a22=1,2,3; D. int a2=1,2,3,4;6.假设按如下方式调用 scanf()函数:scanf(“%d%s%d“,若用户输入 12abc34 56def78,那么调用后 s 的

13、是( ) 。 A. abc B. abc34C. abc34 56def D. 一个空格7.以下程序的执行结果是( ) 。 #include “stdio.h“void main() int a44=1,2,3,4,5,6,7,8,3,9,10,2,4,2,9,6;int i,s=0;for(i=0;ib) fun(c 2);printf(“%c“,c);void main() fun(h); 程序运行后的输出结果是( ) 。A.bdf B.bdfh C.hfdb D.hfd5. 有以下程序#include “stdio.h”#define S(x) (x)*x*3void main() in

14、t k = 6, j = 2;printf(“%dn”, S(k - j);程序运行后的输出结果是( ) 。A.18 B.11 C.48 D.宏的参数不匹配,出错6. 以下程序的输出结果是( ) 。#include “stdio.h”int x, y;void fun() x=20; y=30; void main() int x=7, y=9;fun();printf(“%d%d n”,x ,y);A.2030 B.3020 C.97 D.797. 以下只有在使用时才为该类型变量分配内存的存储类说明是( ) 。A.auto 和 static B.auto 和 registerC.regist

15、er 和 static D.extern 和 register8.在一个源文件中定义的全局变量,其默认的作用域为( ) 。A.本文件的全部范围 B.本程序的全部范围C.本函数的全部范围 D.从定义位置开始至本文件结束9. 设有如下函数定义#include “stdio.h“int fun(int k) if(k1) return 0;else if(k=1) return 1;else return fun(k-1)+1;void main()printf(“%d“,fun(3);若执行调用语句:n=fun(3); ,则函数 fun 总共被调用的次数是( ) 。A.2 B.3 C.4 D.51

16、0. 下面程序的运行结果为( ) 。#include “stdio.h”int f(int k)static int a=1;k+=a+;return k;void main()int a=2;printf(“%dn“,f(a)+f(a);A.6 B.7 C.8 D.97.5 自测练习 1. 当定义一个共用体变量时,系统为它分配的内存空间是( )。A共用体中第一个成员所占用的空间 B共用体中所有成员所占用空间之和C共用体中空间占用最大者D共用体中任意一个成员所占用的空间2. 有如下定义:struct numberint a;char b; num;则 sizeof(num)的值是( )。A 5

17、 B. 8 C. 9 D.103.共用体变量在程序运行过程中( )。A.只有一个成员占用内存空间 B.所有成员都占用内存空间C.没有成员占用内存空间 D.部分成员占用内存空间4.typedef 的作用是( )。A 用来定义一个新的数据类型B 可以为已有类型取一个新的名字C 可以用来定义一个变量D 能为用户自定义类型取新的名字,但不能为原始数据类型取新的名字5.有如下定义的结构体及变量,则为变量中各个成员赋值,正确的形式是( )。struct Timeint hour;int minute;int second; time;A. Time.hour = 3; Time.minute = 24;

18、Time.second = 56;B. hour = 3; minute = 24; second = 56;C. time.hour = 3; time.minute = 24; time.second = 56;D. 以上都可以6.定义了如下结构体数组:struct Numberint a;int b; num2=1,2,3,4;语句 printf(“%d”, num1.a*num1.b);的输出结果是( )。A2 B. 3 C.8 D. 127.以下程序段是计算学生的三门功课平均分,空白处对函数 average 正确调用方式是( )。struct Studentchar name10;i

19、nt score1;int score2;int score3; stu;int float average( struct Student stu)int aver;aver=(stu.score1+stu.score2+stu.score3)/3;return aver; main()struct Strudent stu;int aver;stu.score1=78;stu.score2=86;stu.score3=75;printf(“average is: %d”, aver);A. average(stu); B. aver=average(stu); C. average(Stu

20、dent); D. int average(stu);8. 有如下定义的枚举类型:enum language Chinese=1, English, French, Spanish;则,枚举量 French 的值为( )。A3 B. 2 C. 4 D. 59. 以下对枚举类型名的定义中,正确的是( )。Aenum month=Jan=1, Feb=2, Mar=3;Benum month Jan=1, Feb, Mar;Cenum month“Jan“, “Feb“,“Mar“;Denum month=“Jan“, “Feb“,“Mar“;10. 以下程序段执行后的结果是( )。enum ra

21、nk Fail=1, Pass, Good, Excellent;enum rank grade ;grade = Good;printf(“%d”, grade);A. 编译时出现语法错误 B.2C. 3 D. 48.9 自测练习1.下面程序对两个整型变量的值进行交换。以下正确的说法是( ) 。#include “stdio.h“main() int a=10,b=20;printf(“ (1)a=%d,b=%dn“,a,b);swap(printf(“ (2)a=%d,b=%dn“,a,b); swap(int p,int q) int t; t=p; p=q ; q=t; A.该程序完全

22、正确B.该程序有错,只要将语句 swap( 中的参数改为 a,b 即可C.该程序有错,只要将 swap()函数中形参 p 和 q 以及 t 均定义为指针即可D.以上说法都不正确2.在以下程序中,通过调用 scanf()函数给变量 a 输入数值的方法是错误的,其错误原因是( ) 。#include “stdio.h“main() int *p,q,a,b; p= printf(“input a: “); scanf(“%d“,*p); A. *p 表示的是指针变量 p 的地址B. *p 表示的是变量 a 的值,而不是变量 a 的地址C. *p 表示的是指针变量 p 的值D. *p 只能用来说明

23、p 是一个指针变量3.如有以下定义:char *aa2=“abcd“,“ABCD“;则以下说法中正确的是( ) 。A. aa 数组元素的值分别是“abcd“和“ABCD“B. aa 是指针变量,它指向含有两个数组元素的字符型一维数组C. aa 数组的两个元素分别存放的是含有 4 个字符的一维字符数组的首地址D. aa 数组的两个元素中分别存放了字符 a和A的地址4.下列语句组中,正确的是( ) 。A. char *s;s=“olympic“; B. char s7;s=“olympic“; C. char *s;s=“olympic“; D. char s7;s=“olympic“;5.若有语

24、句 int *point,a=4;和 point= 下面均代表地址的一组选项是( ) 。A. a,point,* s+=2; printf(“%d“,s);的运行结果是( ) 。A. cde B. 字符c C. 字符c的地址 D. 无确定的输出结果7.下面程序段的运行结果是( ) 。char str=“ABC“, *p=str; printf(“%dn“,*(p+3);A. 67 B. 0 C. 字符C 的地址 D. 字符C8.下面程序段的运行结果是( ) 。char a=“language“, *p; p=a;while(*p!=u) printf(“%c“,*p-32); p+; A. L

25、ANGUAGE B. language C. LANG D. langUAGE9.如有以下定义:int a43=1,2,3,4,5,6,7,8,9,10,11,12;int (*prt)3=a,*p=a0;则下列能够正确表示数组元素 a12的表达式是( ) 。A. *(prt+1)2) B. *(*(p+5)C. (*prt+1)+2 D. *(*(a+1)+210.有以下程序:#include “stdio.h“#include “stdlib.h“fut(int *s,int p23) *s=p11; main() int a23=1,3,5,7,9,11,*p;p=(int *)mall

26、oc(sizeof(int);fut(printf(“%dn“,*p); 则程序的运行结果为( ) 。A. 1 B. 7 C. 9 D. 119.7 自测练习1.有以下程序#include “stdio.h“void main() FILE *fp;int i=20,j=30,k,n;fp=fopen(“d1.dat“,“w+“);fprintf(fp,“%dn“,i);fprintf(fp,“%dn“,j);rewind(fp);fscanf(fp,“%d%d“,printf(“%d %dn“,k,n);fclose(fp);程序的运行结果是( )。A.20 30 B.20 50 C.30 50 D.30 20

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报