




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、自测题1答案一、填空题(每空1分,共29分) 1、若有以下的定义:int a 6;则数组a元素的下标的上限为 5 ,下限为 0 。2、局部的变量是在函数内部定义的,它们只在 本函数 有效。3、组成C程序的若干函数中,只能且必须有一个 主 函数。4、C语言中的变量名可以由 字母 , 数字 和 下划线 三种字符组成,且首字符不能是 。5、枚举类型enum color (bla,blu,gre=3,cya,red)中的枚举项的值bla=_0_、blu=_1_、cya=_4_、red=_5_.6、c语言中变量的存储属性有自动、_静态_、_外部_和寄存器四种。7、算术运算符,关系运算符,赋值运算符的优先
2、级从低到高依次是 赋值运算符 , 关系运算符 , 算术运算符 。8、标准文件是系统自动打开和关闭的,但是一般用户文件,必须在程序中用函数_fopen( )_打开文件,文件操作结束后,用_fclose( )_关闭文件。9、函数参数有 形式参数 和 实际参数 两种形式。10、程序的三种基本结构是 顺序结构 , 选择结构 , 循环结构 。 11、均为型变量,请写出描述“或中有一个小于”的表达式_x<z|y<z_。12、下面程序的运行结果是: c1=c,c2=abc # include <stdio.h>main( )char s10=“abc”;printf(“c1=%c,c
3、2=%sn”,s2,s);13、如果a=5,b=2,c=3,d=4,则表达式a<b?a:c<d?c:d的值是 3 。14、设a=6,b=2,表达式a*=a+b运算后a的值为 48 。15、设x=3.8.,a=9,y=5.3,表达式x+a%2*(int)(x+y)%2/4的值 3.8 。二、选择题(每小题2分,共26分)1、 一个C程序的执行是从 A A) 本程序的main函数开始,到main函数结束。B) 本程序的第一个函数开始,到本程序最后一个函数结束。C) 本程序的main函数开始,到本程序文件的最后一个函数结束。D) 本程序的第一个函数开始,到本程序main函数结束。2、 下
4、面的四个选项中,均不是合法的用户标识符的选项是 B A) B B) b-a C) float D) _123 M_0 goto 2ab tempDo int _A INT6、 请问:下面这个程序段的输出是什么? D int a7,b8,c9; if(a<b) a=b;b=c;c=a; printf("a=%d b=%d c=%dn",a,b,c); A. a=7 b=8 c=7 B. a=7 b=9 c=7 C. a=8 b=9 c=7 D. a=8 b=9 c=8 7、 以下描述正确的是 C A) goto语句只能用于退缩出多层循环。B) switch语
5、句中不能出现continue语句。C) 只能用continue语句中来终止本次循环。D) 在循环语句中break语句不独立出现。8、 以下对二维数组a的正确说明是 C A) int a 3 ; B) float a( 3, 4); C) int a 3 4 D) float a( 3, )( 4 ); 9、 有下面的程序段char a 3 , b =”student”;a=b;printf (“ %s”,a);则 D A) 运行后将输出student ; B)运行后将输出b; C) 运行后将输出a D)编译出错 10、 若用数组名作为函数调用的实参,传给形参的是 A A) 数组的首地址 B)数
6、组的第一个元素值 C) 数组的全部元素值 D) 数组中元素的个数 11、在说明语句:int *f( );中,标识符f代表的是 C A) 一个返回值为指针型的函数名B) 一个用于指向整型数据的指针变量C) 一个用于指向函数的指针变量D) 一个用于指向一维数组的行指针12.变量的指针,其含义是指该变量的_D_ A) 一个标志 B) 值 C)名 D) 地址13已知 int b; 则对指针变量正确的说明和初始化是:_ D _A) int *p=b; B) int p=b; C) int p=&b; D) int *p=&b;三、判断题(在你认为正确的表达式前打,错误的打×,每
7、小题1分,共15分)( × )1、switch语句中,所有case后的常量表达式可以相同()2、C语言不能嵌套定义函数,但可以嵌套调用。()3、使用宏定义时,宏名可以是大写或者小写,但是常用大写字母表示。(4、C语言函数的缺省类型是void型(空类型)。(× )5、打印三行输出的C语言程序必须用三条printf语句。(×)6、如果a>b或c<d为真,那么表达式(a>b&&c<d)为真。()7、如果有:int data10;int *p; 则语句p=data 和 语句 p=&data0等价。()8、联合类型是
8、在同一个存储空间,可以为几个不同数据类型的成员所使用。( ×)、一个数组能够存储许多不同类型的值。四、阅读下列程序,请将运行结果写在答题卡上(每题3分,共15分)。2#include<stdio.h> main()char s="456789"s4='0'printf("%sn",s);运行结果_4567_ 1.#include <stdio.h>#define SQR(y) y*ymain() int a,b=4;a=SQR(b+1);printf("a=%dn",a);运行结果_2
9、5_3#include <stdio.h> main() char *s="China Beijing 2008 Olympic Games" char *p;p=s;while (*p)!= ) p+;p=0;printf(“%sn”,s);printf("%sn",+p);运行结果China Beijing 2008 Olympic GamesChina4.#include<stdio.h>main() int i=1;while(i<=10) if (!(i%2) printf("%d,",i);i
10、+;运行结果_1,3,5,7,9_ 5. #include<stdio.h>main()int x=1,y=1,m=1,n=1;swtich (m)case 0: x=x+2;case 1: swtich (n) case 1: x=x+2;case 2: y=y*2; break;case 3: x+;case 2: x+; y+;case 3: x*=2;y*=2;break;default :x+;y+;printf(“x=%d,y=%d”,x,y);运行结果_x=8,y=6_ 五、编写下列程序,(共15分)1.试编写一个程序计算a!+b!+c!,并要求有输出结果.解:#in
11、clude<stdio.h>fact(int);void main()int a,b,c;printf(”Enter three numbers:”);scanf(“%d, %d, %d”,&a,&b,&c);printf(%d!+ %d!+ %d!= %d +%d+%d n”,a,b,c,fact(a), fact(b), fact(c);return;fact(int n)int result;if(n=1) return(1);result=fact(n-1)*n; /*递归调用*/return(result);2. 编写一个程序,将一组数据6,5,8
12、,1,0,4,7,3,2,9按从小到大的顺序排列,程序显示排序前和排序后的结果。解:include <stdio.h>#define N 10main( )int aN= 6,5,8,1,0,4,7,3,2,9int i,j,t;printf(“The array before sorted:”);for (i=0;i<9;i+) for (j=i+1;j<10;j+) if ( ai>aj) t=ai; ai=aj; aj=t;for (i=0;i<N;i+) printf(“%4d”,ai);return 0;自测题2答案一、 填空题1 设int a=5
13、,b=6, 写出表达式 a=a+b 的值_11_。2 若有代数式x2÷(3x+5), 则正确的C语言表达式为:_x*x/(3*x+5)_。3 开发一个c语言的源程序要经过的四个阶段_编辑C语言源程序文件,编译源程序,程序连接,程序运行_。4 int i=5, j, k; j=i+; k=i; 则 k的值为_6_。5 已知:int s3=1,2,3,4,5,6; 此时数组元素s11的值为_5_。6 字符串“hello”占用内存_6_字节。 7 程序段float a=65.123; printf("a=%-10.2f",a); 执行时输出的结果是_a=65.12UUU
14、UU _,(用大写字母U表示空格)。8 执行下面程序段时输出的结果是_7_。#include<stdio.h>main()int i=5;switch(i) case 5:9. 以下程序的输出结果是_3_。#include<stdio.h>main( )int a10=1,2,3,4,5,6,7,8,9,10,*p=a;printf("%dn",*(p+2); case 6: i+=2;case 7: break;case 8: i+=2;printf("i=%d",i);10.c语言中有5种基本数据类型。它们是字符型,整型,_浮
15、点型_,_长浮点型(双精度型)_和_无值型_,其关键字分别是:char,int,_fload_,_double_和_void_。 二、单项选择题1. 在程序中可以用来作为变量名的合法的标识符是:_c_A static B 23_b1 C stu_1t D #33 2. 下列运算符运算级别最高的是:_A && B += C >= D !3. 已知:char str1, str210; 选择正确的输入语句 _A_A scanf ("%c%s", &str1,str2); B scanf ("%s%s", &str1,st
16、r2); C scanf ("%c%c", &str1,str2); D scanf ("%s%c", &str1,str2);4. 选择正确的运行结果:_D_#include "stdio.h"main() int a=1,b=10; do a+; b-=a; b-;while(b>0);printf("a=%d,b=%d",a,b);A a=2,b=-1 B a=2,b=-2 C a=4,b=-1 D a=4,b=-2 5. 以下正确的描述是:_B_A continue 语句的作用是终止整
17、个循环的执行。B continue 语句的作用是结束本次循环的执行。C continue 语句和break 语句都可以在switch语句中使用。D break 语句的作用是结束本次循环的执行。三、程序改错1.#include <stdio.h>main( ) int a,b,c;a=7;b=8;add();改为c=add(a,b)printf(“The result is%d”,c);int add(int x,int y) int z;z=x+y;renturn z; 2. 统计字符串中小写字符的个数。#include "stdio.h"main() char
18、 str20; int i,n=0; gets( ); for(i=0;stri!= "/0"i+) 改为0if(stri>='a'&&stri<='z') n+; printf("%dn",n);3.include<stdio.h> # include<stdio.h>fun( int *s, k) int i; for(i=0;i<k;i+)si+=5; return sk-1main() int a5=1,2,3,4, x ; x=fun(a,5); prin
19、tf("%d", x); 4. include <stdio.h>main( )int a,b,c,sum;a=1;b=2;scanf(“%d”,&c);sum=a+b+cprintf(“sum=”,sum)改为:include <stdio.h>main()int a,b,c,sum;a=1;b=2;scanf(“%d”,&c);sum=a+b+c;printf(“sum=%d”,sum);四、阅读下列程序,写运行结果1.#include<stdio.h> main() int m=5;if(m+>5) print
20、f("%dn",m);else printf("%dn",m-);运行结果_6_2.#include<stdio.h> main()char s="123456"s4='0'printf("%sn",s);运行结果_1234_ 3.#include<stdio.h>main() int i=1;while(i<=10) if (!(i%3) printf("%d,",i);i+;运行结果_3,6,9_4. #include<stdio.h>
21、;main()int a33=3,2,2,4,5,6,-2,9,2;int i,j,s=0;for(i=0;i<3;i+)for(j=0;j<3;j+)if(i = = 2-j) s=s+aij;printf("s=%d",s);运行结果_5_ 5.#include<stdio.h>main( ) int x=20, y=15;if( x>y) swap(&x, &y);printf("%d", x);swap(int *p1, int *p2) int *temp;temp=p1;p1=p2;p2=temp
22、;运行结果_15_ 五、编写下列程序1应用动态存储单元编写一个程序,计算两个浮点数之和。 申请用于存储3个浮点数的动态存储空间。得到所要求的存储空间后,向里面存储两个数据与他们的和,接着输出这些数据。然后将所申请的存储空间退回系统。#include<stdio.h>#include<stdlib.h>main( )float *prt;prt=malloc(3*sizeof(float);if(!prt)printf(“out of memory”);elseprintf(“n Enter two numbers:”);scanf(“%d%d”,prt,prt+1);*
23、(prt+2)=*prt+*(prt+1)printf(“The sum is %dn”,*(prt+2);free(prt);return 0;2.求下面一元二次方程的根。ax2+bx+c=0解:include<stdio.h>#include<math.h>float X1,X2,p,q,d;/*全局变量*/float greater_than_zero(float,float);float equal_to_zero(float,float);float equal_to_zero(float,float);float smaller_than_zero(floa
24、t,float);main( )float a,b,c;printf(“Enter a,b,c:”);scanf(“%f%f%f”,&a,&b,&c);d=b*b-4*a*c;if(d>0) greater_than_zero(a,b); printf(X1=%5.2ft,X2=%5.2fn,X1,X2);else if(d=0)equal_to_zero(a,b);printf(“X1=X2=%5.2fn”,X1);elsesmeller_than_zero(a,b);printf(“X1=%5.2f+%5.2fin”,p,q);printf(“X2=%5.2f
25、-%5.2fin”,p,q);return 0;float greater_than_zero(float x,float y)X1=(-y+sqrt(d)/(2*x);X2=(-y-sqrt(d)/(2*x);Return;float equal_to_zero(float x,float y)X1=(-y)/(2*x)return;float smaller_than_zero(float x,float y)p=-y/(2*x);q=sqrt(-d)/(2*x);return:自测题3答案一、填空题1、均为型变量,请写出描述“或中有一个小于”的表达式_x<z|y<z_。2、下
26、面程序的运行结果是: c1=c,c2=abc # include <stdio.h>main( )char s10=“abc”;printf(“c1=%c,c2=%sn”,s2,s);3、如果a=5,b=2,c=3,d=4,则表达式a<b?a:c<d?c:d的值是 3 。4、设a=6,b=2,表达式a*=a+b运算后a的值为 48 。5、设x=3.8.,a=9,y=5.3,表达式x+a%2*(int)(x+y)%2/4的值 3.8 。6、凡是函数中未指定存储类别的局部变量,隐含的存储类别为auto 。7、在c语言中,一个函数一般由两个部分组成,它们是 首部 、函数体 。
27、8、执行下列程序段后,*(p+1)的值是 b , *(p+2)的值是 0 .char c3=”ab”, *p; p=c;9、在c语言中,调用函数时,如果形参是简单变量,对应的实参可以是变量、数组元素和 常量 ,当形参和实参都是变量时,数据的传递是 单向值传递 。10、说明预处理命令 #define xyt(x,y) ( int t; t=x; x=y; y=t)的功能是用宏名定义xyt(x,y)定义了将x、y两个参数交换。二、选择题1、 以下选项中不合法的用户标识符是: B A._123 B. file C. a$ D. Dim2、TURBO C 中int 类型变量所占字节数是: B A. 1
28、 B. 2 C. 3 D. 43、若变量已正确说明为int类型,要给a、b、c输入数据,以下正确的输入语句是: D A. read(a,b,d) B scanf(“%d%d%d”,a,b,c) C. scanf(“%D%D%D”,&a,&b,&c) D. scanf(“%d%d%d”,&a,&b,&c)4、 以下程序段的输出是: B printf(“|%10.5f|n”,12345.678);A.|1234.67800| B. |12345.6780| C.|12345.67800| D. |12345.678|5、在C语言中,要求运算数是整型的
29、运算符是 A A) / B) + C) != D) *6、有输入语句:scanf(“a=%d, b=%d, c=%d”, &a, &b, &c);为使变量a,b,c的值分别为1,3,2,从键盘上输入数据的正确形式应当是 D A)132 回车 D)a=1,b=3,c=2回车 C)a=1 b=3 c=a <回车> B) 1,3,2 回车7、 当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是 B if ( a<b )if (c<d ) x=1;elseif (a<c) if(b<d) x=2; else x=3;else x
30、=6;else x=7;A) 1 B) 2 C) 3 D) 6三、判断题( )1、C语言中,变量名用大小写是等价的。( × )2、强制类型转换,如(double)x,只改变原变量的类型,而不改变其值。( ×)3、存储字符串所需的内存空间等于字符串的长度。( )4、C语言中,注释可以出现在源程序的任何位置。( ×)5、整型、字符型、指针型是C语言中最简单的数据类型。( )6、全局变量在整个源程序文件中都有效。( × )7、switch选择结构中必须有default子句。( )8、如果x>y或者a<b为真,那么表达式( x>y|a<b)为真。( × )9、一个函数float div(float x,float y),其函数原型说明为float div(float x,float y).( )10、结构成员名可以与程序中的变量同名,也可以与结构类型名相同四、阅读下面程序,请写出运行结果(每题3分,共15分)1. 以下程序的输出结果是#include <stdio.h>main() int i=0,a=0;while(i<20) for(;) if(i%10)=0) break
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 双极细胞外段的超微结构与感受器电位产生的课件
- 习惯养成教育主题班会
- 12月公共营养师基础知识模拟题与答案(附解析)
- 小学学校消除大班额工作实施方案
- 派遣员工职业满意度调查与反馈利用考核试卷
- 《催化裂化技术讲座》课件
- 谷物磨制在特殊人群饮食中的应用考核试卷
- 《并串电路电流规律及例题课件》
- 制鞋业行业供应链管理考核试卷
- 环境工程讲解课件
- 沪教版数学三年级下册三位数乘两位数竖式计算题100道及答案
- 山东省2025届高三第二次模拟考试历史试卷含解析
- DL∕Z 860.1-2018 电力自动化通信网络和系统 第1部分:概论
- 2024年04月南昌市2024年第二次招考120名市级专职留置看护队员笔试笔试历年典型考题及考点研判与答案解析
- 康养旅游项目策划方案毕业设计(2篇)
- 《陆上风电场工程概算定额》NBT 31010-2019
- 生物医学电子学智慧树知到期末考试答案章节答案2024年天津大学
- 《论语》全文原文版
- 流体机械复习题1
- 家装设计师量房技巧
- 《水电工程水生生态调查与评价技术规范》(NB-T 10079-2018)
评论
0/150
提交评论