语言程序设计复习资料_第1页
语言程序设计复习资料_第2页
语言程序设计复习资料_第3页
语言程序设计复习资料_第4页
语言程序设计复习资料_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、C语言程序设计复习资料一、选择题下列各题ABCD四个选项中,只有一个选项是正确的,请将正确选项涂在答题卡的相应位置上,答在试卷上不得分。1、不合法的整数是( B )。 A)0x35 B)43.6 C)0532 D)-3462、下列合法的字符常量是( D )。 A)“f” B)x C)65 D)Xab3、设有整型变量x,单精度变量y=5.5,表达式x=float(y*3+(int)y%4)执行后,x的值为( A )。 A)17 B)17.500000 C)17.5 D)1.54、在C语言中,负整数在内存中以( A )形式释放。 A)补码 B)BCD码 C)反码 D)十进制数5、在C语言中,要求参

2、加运算的数必须是整数的运算符是(C )。 A)/ B)! C)% D)= =6、( D )是C语言中非法的数据类型关键字。 A)float B)singed C)integer D)Char7、现已定义整形变量int i=1;执行循环语句while(i+<5);后i的值为( b )。 A)1 B)5 C)6 D)以上三个答案都不正确8、下列语句的输出结果是( D )。 printf(“%fn”,(float)(2+4)/2); A)有语法错误不能通过编译 B)3 C)3.0 D)3.00000012、定义a为整型,下列表达式a=3>6的运行后,a的值为( A )。 A)0 B)1

3、C)3 D)表达式错误13、如果a=1,b=2,c=3,d=4,则条件表达式a>b?a:c>d?c:d的值为( D )。 A)1 B)2 C)3 D)414、对于条件表达式(M)?(a+):(a-),其中的表达式M等价于( C )。 A)M= =0 B)M= =1 C)M!=0 D)M!=115、在x值处于-2到2,4到8时值为“真”,否则为“假”的表达式是( D )。 A)(2>x>-2)|(4>x>8) B)(x<=-2)|(x>=2)|(x>4)|(x>=8)C)(x<2)&&(x>=-2)&

4、&(x>4)&&(x<8) D)(x>-2)&&(x>4)|(x<8)&&(x<2)16、已知字母a的ASC|的十进制代码为97,则执行下列语句后输出为( C )。 Char a=a; a-; printf(“%d,%cn”,a+2-0,a+3-0); A)a,c B)a运算不合法,故有语法错误 C)98,c D)格式描述和输出项不匹配,输出无定值18、C语言中,逻辑“真”等价于( C )。 A)大于零的数 B)大于零的整数 C)非零的数 D)非零的整数19、下列语句中,符合语法的语句式( D )。 A

5、)a+b=3 B)a=7 C)a=c+b+3=6; D)a=8,b=a+7;20、若x为float型变量,则以列程序段结果是( B )。x=1234.6789;printf(“%-2.1f”,x);A)输出格式描述符的域宽度不够,不能输出 B)输出为1234.7C)输出为1234.6 D)输出为-1234.621、下面函数的功能是( A )。Int funl(char*x)char*y=x;while(*y+);return(y-x-1);A)求字符串的长度 B)比较两个字符串的大小 C)将字符串x复制到字符串yD)将字符串x连接到字符串y后面22、指针变量a所指的字符串长度为( D )。Ch

6、ar*a=”n”My Name is ”Zhang Li”n”;A)26 B)27 C)28 D)2323、若有以下说明和语句,则输出结果是( B )。Char*sp=”n”;Printf(“%d”,strlen(sp);A)6 B)3 C) 5 D)字符串中有非法自负,输出值不定24、若有以下的说明语句,则对字符串中字符的不正确引用是(其中0<=i<6)( D ).Char*strp=“string”;A)*strp B)*(strp+i) C)strpi D)strp25、函数调用:strcat(strcpy(str1,str2),str3)的功能是( C )。A) 将串str

7、1复制到串str2中后再连接到串str3之后B) 将串str1连接到串str2之后再复制到串str3之后C) 将串str2复制到串str1中后再将串str3连接到串str1之后D) 将串str2连接到串str1之后再将串str1复制到串str3之后26、若使用下述程序段将整数12和浮点数13.6分别赋给变量a和b,那么输入应该式( B )。int a;float b;scanf(“a=%d,b=%f”,&a,&b);A)12 13.6 B)a=12, b=13.6 C)12, 13.6 D)a=12 b=13.627、对下面的程序说法正确的是( C )。main() int x

8、+3,y=0,z=0; if(x=y+z) printf(“*”); else printf(“#”); A)有语法错误,不能通过编译 B)输出为* C)输出为# # # # D)通过编译,但是不能运行28、下面程序的输出是( B )。main() int x=10,y=3; printf(“%dn”,y=x%y); A)0 B)1 C)3 D)不确定的值29、( D )是不正确的C语言赋值语句。A)a=a+1; B)i+; C)a*=1,b=8; D)a=330、C语言程序的三种基本程序是( A )。A)顺序结构,选择结构,循环结构 B)递归结构,循环结构,转移结构C)嵌套结构,递归结构,顺

9、序结构 D)循环结构,转移结构,顺序结构33、以下程序段( B )。int x=1,y=4; printf(x<y?”x=%d”:”y=%d”,x,y);A)输出控制格式错误 B)输出:x=1 C)输出:y=1 D)输出:y=434、为了避免嵌套的条件语句if-else的二义性,C语言规定:else与( B )是正确的。A)缩排位置相同的if B)其之前最近的if C)其之后if D)同一行上的if35、下列关于switch语句和break语句的结论中,只有( B )是正确的。A) break语句是switch语句的一部分B) 在switch语句中可以根据需要使用或不使用break语句C

10、) 在switch语句中必须使用break语句D) 以上三个结论有两个是正确的36、设I和x都是int类型,则对于for循环语句for(i=0,x=0;i<9;i+),下列哪句话正确( B )。A)执行8次 B)执行9次 C)是无限循环 D)循环体一次也不执行40、char(*A)5,则标识符A的意义时( B )。A) A是一个指向有5个字符型元素的指针变量B) A是一个有5个元素的一维数组,每个元素指向字符型的指针变量C) A是一个指向字符型的函数的指针变量D) A是一个有5个元素的一维数组,每个元素指向整型变量的指针变量112、C语言程序的三种基本结构是( A) A)顺序结构,选择结

11、构,循环结构 B)递归结构,循环结构,转移结构C)嵌套结构,递归结构,顺序结构 D)循环结构,转移结构,顺序结构1下列合法的字符常量是( D )。 A.“f” B.x C.65 D.Xab2下面那个是属于合法的标识符( C )A.99 B.1_s C. ab D.vb3在C语言中,要求参加运算的数必须是整数的运算符是( C )。 A. / B. ! C. % D. = =4现已定义整形变量int i=1;执行循环语句while(i+<5);后i的值为( B )。 A. 1 B. 5 C. 6 D. 以上三个答案都不正确5下列语句的输出结果是( D )。 printf(“%fn”,(flo

12、at)(2+4)/2); A. 有语法错误不能通过编译 B. 3 C. 3.0 D. 3.0000006设C语言中,int类型数据占2个字节,则long类型数据占( D )个字节。 A. 1 B. 2 C. 8 D. 47现有表达式y=x<1?1:(x<10?2:3),如x=12,则y等于( C )A.2 B.1 C. 3 D. 08定义a为整型,下列表达式a=3>6的运行后,a的值为( A )。 A. 0 B. 1 C. 3 D. 表达式错误9表达式a=3,a+1,a*a的值是( B )A.2 B.9 C. 16 D.410下列语句中,符合语法的语句式( D )。 A. a

13、+b=3 B. a=7 C. a=c+b+3=6; D. a=8,b=a+7;在c中单精度数据类型的精度是几?( C )A.8 B.6 C. 7 D. 55在C语言中,用( B )表示逻辑值“真”。A.1 B.非0的数 C. “a” D. 1016表达式2.5+7%3*3(int)(2.5+4.7)%2/4的结果是( D ) B.2.75 C. 3 D. 2.57表达式!4|3&&2的结果是( A )A.1 B.0 C.4 D. 28现有表达式y=x<1?1:(x<10?2:3),如x=5,则y等于( A )A.2 B.1 C. 3 D. 09若变量已正确定义,语句

14、“if(a>b) k=0;else k=1;”和其等价的是( D )A.k=(a>b)?1:0 B.k=a>b; C. k=a<=b; D. a<=b?0:1;10设x=3,执行语句y=x+后,x、y分别等于( D )A.3,3 B.1,2 C. 3,4 D. 4,311表达式a=3,a=a+1,a*a的值是( C )A.2 B.9 C. 16 D.412函数调用:strcat(strcpy(str1,str2),str3)的功能是( C )。A. 将串str1复制到串str2中后再连接到串str3之后B.将串str1连接到串str2之后再复制到串str3之后C.

15、将串str2复制到串str1中后再将串str3连接到串str1之后D.将串str2连接到串str1之后再将串str1复制到串str3之后13break语句的作用是( B )A.结束本次循环 B.结束所有循环 C. 结束一条语句 D.结束整个程序14下列程序的输出结果是( C )。fun(int a, int b, int c) c =a*b; main( ) int c=5; fun(2,3,c); printf(”%dn”,c);A.0 B.5 C.6 D.无法确定二、 填空。三、 5. 下述函数的功能是_将数组a的元素由小到大排序_ .void func(int a,int n) int

16、i,j; for(i=1;i<n;i+) for(j=i;j>0 && aj <aj-1;j-) int t=aj; aj=aj-1; aj-1=t; 8一个C源程序中至少应包括一个main()函数_。9在一个C源程序中,注释部分两侧的分界符分别为_/*_和_*/_。10在C语言中,输入操作是由库函数_scanf_完成的,输出操作是由库函数_printf_完成的。11经过下述赋植后,变量X的数据类型是_整型int_。Int x=2;Double y;Y =(int)(float)x;12C语言的基本数据类型分别为_整_int_型、_字符_char_型、_实fl

17、oat_型。13若a、b和c均是int类型变量,则执行下面表达式后,a值为_6_,b值为_4_,c值为_2_。a=(b=4)+(c=2)14若a是int型变量,则执行下面表达式后,a的值为_2_。a=25/3%315若x和n均是int型变量,且x和n的初值均为5,则执行下面表达式后,x的值为_10_,n的值为_6_。 x+=n+16若有定义:iloat a=2.5,cnt b=7;f=4.7;则执行下面表达式的值为_5.5_。 a+(int)(b/3*(int)(a+c)/2)%417若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x)的值为

18、_8.000000_。18若有定义:int e=1,f =4,g=2;float m=10.5,n=4.0,k;则执行赋值表达式k=(e+f)/g+sqrt(double)n)*1.2/g+m后,k的值为_13.700000_。19表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3)值的数据类型为_int整型_。20表达式pow(2.8,sqrt(double(x)值的数据类型为_double双精度_。21若s是int型变量,且s=6,则下面表达式的值为_1_。 s%2+(s+1)%222.若a 是int型变量,则下面表达式的值为_26_。(a=4*5,a*2),a+623

19、.若x和a均是int型变量,则执行表达式(1)后的x值为_12_,执行表达式(2)后的x值为_4_。(1) x=(a=4,6*2)(2) x=a=4,6*2?24.若有以下定义,则执行表达式y+=y-=m*=y后,y的值为_-16_ int m=5,y=2;25.设C语言中,一个int型数据在内存中占两个字节,则int型数据的取值范围为-32768-32767数组名中存放的是一个地址常量,它代表_数组的首地址_。2表示“xyz”的C语言表达式是_(x>=y&&y>=z)_。3设ch是字符型变量,判断ch为英文字母的c语言表达式是: (ch>=A&&am

20、p;ch<=Z)|(ch>=a&&ch<=z) 。4已知 int a10; int *px=a,*py=&a3;那么py与px相隔_6_个字节。5If语句中if总是和_最近_else匹配。6从函数的参数来分函数分为_有参函数_、_无参函数_。7调用函数时,函数名称必须与_被调用函数_名称完全一致。8形参变量只有在_调用_时,才分配内存单元。_调用结束_时,即刻释放所分配的内存单元。6从函数的参数来分函数分为_有参函数_、_无参函数_。7在x值处于-2到2,4到8时值为“真”,否则为“假”的表达式是_(x>=-2&&x<=2)

21、|(x>=4&&x<=8)_。8下面函数的功能是_求字符串的长度_。Int funl(char*x)char*y=x;while(*y+);return(y-x-1);。9设I和x都是int类型,则对于for循环语句for(i=0,x=0;i<9;i+)执行了_9_次。10在C语言中,逻辑值“真”用_非0的数_来表示。四、 程序运行结果1下列程序输出的结果是 11,13,14,16,17,19,20 。Main() int n; for(n=10;n<=20;n+) if(n%3= =0) Continue; Printf(“%d”,n); 2下列程序段

22、的输出是_5_。#define f(a, b, x) a*x+bprintf("%d", f(3,2,1);3#include <stdio.h>#define M 3#define N M+1main()printf(“%dn”,N);4main() int array5=2,4,6,810; int *pointer=array;printf(”%d”,array0);printf(”%d”,*(array+1);printf(”%d”,*(pointer+2);printf(”%d”,*(pioter+);四、程序分析(23分)2下面程序的功能是什么?#i

23、nclude “stdio.h”main() int a,b,c,temp;printf(“n请输入三个数:”);scanf(“%d%d%d”,&a,&b,&c);printf(“a=%d,b=%d,c=%d”,a,b,c);temp=a;a=c;c=b;b=temp;printf(“n交换之后a=%d,b=%d,c=%d”,a,b,c);3下面程序的功能是什么?#include <stdio.h> prime(int a) int e,i,yes;yes=1;e=a/2;i=2;while(i<=e)&&yes) if(a%i)= =

24、0) yes=0; else i+; return yes;main() int x; printf(“输入一个整数给:”); scanf(“%d”,&x); if(prime(x) printf(“YESn”);else printf(“Non”);4. 下列程序的输出结果是( C )。#include<stdio.h>void fun();void main()int x=1;if(x= =1) int x=2; printf(“%d”,+x); void fun() printf(“%d”,x+);A)2,1,1 B)1,2,1 C)2,2,2 D)2,2,15. 以

25、下程序的输出结果是( C )。main() char *a5=“how”,”do”,”you”,”do”,”!”; char *p; int i; p=a; for(i=0;i<4;i+) printf(“%s”,pi);A)howdoyoudo! B)how C)howdoyoudo D)hdyd6. 下述程序的输出结果为( D )。 #include<stdio.h> void main() int a5=2,4,6,8,10; int *p=a,*q=&p; printf(“d%,”,*(p+); printf(“%d”,*q); A)4,4 B)2,2 C)4

26、,5 D)2,4五、程序填空。(27分)1. 下面程序是求100200间的全部素数。#include <stdio.h>main() (1)int prime(int n) ;for (m=101;m<=200;m=m+2)if ( (2)prime(m) ) printf(“%d”,m);int prime(int n) /* 判断n是否为素数 */ int flag=1,i;for (i=2;i<n/2&&flag= =1;i+) if (n%i= =0) flag=0;return ( _(3)_flag_);3.下述函数将字符串转换成整数。字符串

27、中允许出现前导空格符、换行符和制表符,除此之外的其他非数字字符开头作0处理。此外,若字符串中出现非数字字符,则终止字符串的转换。 void stoa (char * s,long * a) int i=0,sign=_(1)_1_; while(si= = si= =t)i+;if(si= =+si= =) sing=si= =+? 1: 1;_(2)_i+_;for (*a=0;_(3)si>=0&&si<=9_;I+)*a=_(4)sign_;*a*=sign;4. 本程序用改进的气泡排序法对数组a的元素从小到大排序。void bubble(int a,int

28、n) int j,k,jmax,temp; jmax=_(1)_n-1_; do k=_(2)_0_; for(j=0;j<jmax;j+) if(aj>aj+1) temp=aj; aj=aj+1; aj+1=temp; k=_(3)_j_; jmax=_(4)_k_;while(jmax>0); 4、程序分析(1)程序有错误么?如有,请给予改正。并写出程序运行结果。(5分)(2)指出哪些变量属于局部变量,哪些变量属于全局变量?同时给出给各变量的作用范围(用行号表示)。(5分)1int s1, s3,v;2int vs(int a,int b,int c)3 int k;4

29、 k=a*b*c; s1=a*b; s2=b*c; s3=a*c;5 return k;6 7 int s2;8 main()9 int l,w,h;10 l=3;w=2;h=5;11 v=vs(l,w,h);12 printf("v=%d ,s1=%d , s2=%d, s3=%dn",v,s1,s2,s3);13 (1)程序有错误,改正:第3行与第4行之间插入语句extern int s2;程序运行结果:30,6,10,15。(2)局部变量:a,b,c,k,l,w,h,它们的作用范围只在自己函数内,全局变量:s1,s3,v,s2;其中s1,s3,v的作用范围为113,s2的作用范围为713。(2)下面程序的功能是什么? 对三个数排序#include “stdio.h”main() int a,b,c,temp;printf(“n请输入三个数:”);scanf(“%d%d%d”,&a,&b,&c);printf(“a=%

温馨提示

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

评论

0/150

提交评论