C语言程序设计技巧考试范围-2010-12-09
- 格式:doc
- 大小:199.00 KB
- 文档页数:16
C语言考试大纲(一)C语言程序设计概述重点掌握以下内容:1. C语言程序基本结构。
1.1 C程序结构全貌1.2 C程序的基本结构和各项组成规则2. C语言程序的上机步骤2.1 C程序上机调试流程、每一步骤功能及产生的磁盘文件类型2.2 Turbo C2.0集成环境下调试C程序的四大操作步骤2.3 能将给定C程序输入计算机,2.4 并调试运行得到正确结果3.算法3.1 算法的概念与特点3.2 算法的表示3.3 结构化程序设计方法3.4 能绘制流程图或N-S流程图给出解决问题的算法4. C语言的数据类型4.1 C语言数据类型的分类,基本数据类型的分类4.2 常量和变量的概念、标4.3 识符的定义规则及内容(关键字、特定字)4.3 整型常量的十进制、八进制、十六进制表现形式,实型常量的小数及指数表示形式,字符常量与字符串常量的表示形式、在内存中的存储形式及区别、符号的区别,符号常量的作用、定义与引用方法。
4.4 转义符’\n’、’\t’、’\0’等特殊的字符常量及各转义字符的含义,4.5 能正确写出其输出结果。
4.6 变量的命名4.7 规则,4.8 C语言对变量采用“先定义,4.9 后使用”的原则。
4.10 整型、实型、字符型变量的类型定义、赋初值方法、变量声明4.11 字符型数据与整型数据可互相通用、互相赋值、混合计算的规则5. C语言的运算符及表达式5.1 C语言的运算符及其分类、表达式的概念及组成5.2 5种算术运算符、赋值与复5.3 合赋值运算符、++与- -运算符、6种关系运算符、3种逻辑运算符、逗号运算符、条件运算符的功能和作用,5.4 对应表达式的构成及运算规则6. 运算符的优先级和结合性6.1 运算符的优先级和结合性的概念6.2 C语言中各类常用运算符的表达式正确求值7. 类型转换规则7.1 数值型数据间不7.2 同7.3 类型运算量混合运算的类型转换7.4 强制类型转换7.5 赋值运算时变量类型优先的原则(二)C语言的基本语句和顺序结构程序设计1. C语句概述1.1 C语言的5大类语句中所包含的各种语句1.2 C语言中各类语句的构成形式与规则1.3 C语言的复1.4 合语句是一对“{}”括起来的若干语句整体2. 赋值语句2.1 赋值语句和赋值表达式的区别、赋值语句在程序中的作用、赋值语句执行结果的类型转换规则3. 数据的输入、输出3.1 数据的输入、输出在程序中的重要作用3.2 scanf与printf函数的调用方法、输入/输出语句构成形式3.3 输出格式控制符、附加格式控制符,3.4 特别是d,f,u,c,s,m,n等3.5 &取地址运算符的功能与作用4. 顺序结构程序设计方法4.1 顺序结构程序按程序中语句出现的先后顺序执行4.2 应用赋值语句、输入输出语句设计顺序结构的程序,4.3 在程序中灵活运用输入语句及格式控制符为程序提供各种格式的输入数据,4.4 并按要求格式输出运算结果。
福建师范大学C语言程序设计考试题系别 _______ 班级 _______ 姓名_________ 学号________ 得分__________一、选择题(本大题共40个选项,每个选择项1.5分,共60分)1.在C语言中,合法的字符常数是【1】A)‘程序设计’ B)“程序设计”C)c D)‘\\’2.在C语言中,以下不正确的八进制或不正确的十六进制数是【2】A)090 B)0xABC)0xla D)-0163.执行int x=2,y=3;后表达式x=(y==3)的值是【3】A)0 B)1C)2 D)34.执行语句int a,b,c; a=(b=c=3, c++, b+=c);则a的值是【4】A) 3 B) 4C) 7 D) 115.在循环结构的循环体中执行break语句,其作用是【5】A) 结束本次循环,进行下次循环B) 继续执行break语句之后的循环体中各语句C) 跳出该循环体,提前结束循环D) 终止程序运行【6】main(){char s[]=”\’Address\’”;printf(%d\n”, strlen(s));}A) 9 B) 10C) 11 D) 12【7】main(){int a[]={2, 4, 6, 8, 10}, y=1, x;for(x=0; x<3; x++) y+=a[x+1];printf(“%d\n”, y);}A) 17 B) 18C) 19 D) 208.已定义char x[8]; int i;为了给x数组赋值,以下正确的语句是【8】A) x[8]=”Turbo C”; B) x=”Turbo C”;C) x[]=”Turbo C”; D) for(i=0; i<7; i++) x[i]=getchar();9.设int a[][4]={0, 0};则以下错误的描述是【9】A) 数组a的每个元素都可得到初值0B) 二维数组a的第一维大小为1C) 数组a的行数为1D) 只有元素a[0][0]和a[0][1]可得到初值0,其余元素得不到初值0 【10】fun3(int x){static int a=3;a+=x;return a;}main(){int k=2, m=1, n;n=fun3(k);n=fun3(m);printf(“%d\n”, n);}A) 3 B) 4C) 6 D) 911.以下四个运算符,按优先级由高到低的排列顺序是【11】A) ++ % += > B) % ++ > +=C) % += > ++ D) ++ % > +=【12】A) 在函数外部定义的变量是全局变量B) 在函数内部定义的变量是局部变量C) 函数的形参是局部变量D) 局部变量不能与全局变量同名13.“文件包含”预处理语句的使用形式中,当#include后面的文件名用“”括起时,寻找被包含的文件的方式为【13】A) 直接按系统设定的标准方式搜索目录B) 先在源程序所在目录搜索,再按系统设定的标准方式搜索C) 仅仅搜索源程序所在的目录D) 仅仅搜索当前目录14.设有语句int(*p)();则p是一个【14】A) 指向一维整型数组的指针变量B) 指针函数,该函数的返回值为指向整型变量的指针C) 指向函数的指针变量,该函数的返回值为整型D) 数组指针,它的每个元素都是一个可以指向整型变量的指针变量15.若有typedef float AR[5];AR a;则以下叙述正确的是【15】A) a是一个新类型名B) AR是一个实型数组C) AR是一个实型变量D) a是一个实型数组【16】A)整型、实型、逻辑型B)整型、实型、字符型、逻辑型C)整型、字符型、逻辑型D)整型、实型、字符型17.在C语言中,变量所分配的内存空间大小【17】A)均为一个字节 B)由用户自己定义C)由变量的类型决定 D)是任意的18.在C语言中,合法的整型常数是【18】A)-0x123 B)3.14159 C19.下列各变量均为整型,选项中不正确的C语言赋值语句是【19】A)i+=++i; B)i=j==k;C)i=j+=i; D)i=j+1=k;≤y≤z可用C语言的表达式表示为【20】A)(x<=y)&&(y<=z) B)(x<=y)and(y<=z)C)(x<=y<=z) D)(x<=y)&(y<z)21.若定义float a;现要从键盘输入a数据,其整数位为3位,小数位为2位,则选用【21】A)scanf(“%6f”,&a); B)scanf(“%”,a);C)scanf(“%”,&a); D)scanf(“%f”,a);【22】unsigned a=0356,b;b=~a|a<<2+1;printf(“%x\n”,b);A)ffba B)ff71 C)fff8 D)fc0223.要使以下程序的输出结果为4,则a和b应满足的条件是【23】main(){int s,t,a,b;scanf(“%d%d”,&a,&b);s=t=1;if(a>0) s += 1;if(a>b) t= s + t;elseif(a==b) t=5;else t=2*s;printf(“%d\n”,t);}A)a>0并且a<b B)a<0并且a<bC)a>0并且a>b D)a<0并且a<b24.若int i;则以下循环语句的循环执行次数是【24】for (i=2;i==0;) printf(“%d”,i--);A)无限次 B)0次C)1次 D)2次【25】main(){int i;for(i=100;i<200;i++){if(i%5==0) continue;printf(“%d\n”,i);break;}}A)100 B)101C)无限循环 D)无输出结果【26】int i=1,a[]={1,5,10,9,13,7};while(a[i]<=10) a[i++]+=2;for (i=0;i<6;i++) printf(“%d”,a[i]);A)2 7 12 11 13 9 B)1 7 12 11 13 7C)1 7 12 11 13 9 D)1 7 12 9 13 7“abcde”赋初值给字符数组,不正确的语句是【27】A)char s[]=“abcde”; B)char s[]={’a’, ’b’,’c’,’d’,’e’,’\0’};C)char s[]={“abcde”}; D)char s[5]= “abcde”;28.若变量c为char类型,能正确判断出c为小写字母的表达式是【28】A) 'a'<=c<= 'z' B) (c>= 'a')||(c<= 'z')C) ('a'<=c)and ('z'>=c) D) (c>= 'a')&&(c<= 'z')【29】void fun(int *x, int *y){ printf("%d %d", *x, *y); *x=3; *y=4;}main(){ int x=1,y=2;fun(&y,&x);printf("%d %d",x, y);}A) 2 1 4 3 B) 1 2 1 2 C) 1 2 3 4 D) 2 1 1 2【30】main(){ int i, k, a[10], p[3];k=5;for (i=0;i<10;i++) a[i ]=i;for (i=0;i<3;i++) p[i ]=a[i *(i+1)];for (i=0;i<3;i++) k+=p[i] *2;printf("%d\n",k);}A) 20 B) 21 C) 22 D)2331.当执行下面的程序时,如果输入ABC,则输出结果是【31】main(){ char ss[10]="1,2,3,4,5";gets(ss); strcat(ss, "6789"); printf("%s\n",ss);}A) ABC6789 B) ABC67 C【32】A) int a[2][3]={0}; B) int a[][3]={1,2,3,4,5};C) int a[2][3]={{1,2},{3,4},{5,6}}; D) int a[2][3]={{1},{3,4,5}};33.若int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是【33】A) 2 B) 3 C) 4 D)无确定值34.下面程序段的运行结果是【34】int a[2][3]={1,2,3},i,j;for(i=0;i<2;i++)for(j=0;j<3;j++){a[i][j]=a[i*j%2][j]+a[i][(i+j)%3];printf(“%d,”,a[i][j]);}A) 2,4,6,2,0,8, B) 1,2,3,0,0,0,C) 1,2,3,2,0,6, D) 2,4,6,2,0,6,35.下面程序段的运行结果是【35】int a[][3]={1,2,3,4,5,6,7,8,9,10,11,12};printf(“%d\n”,a[2][1]);A) 2 B) 4 C) 7 D)836.定义一个结构体变量时,系统分配给它的内存大小是【36】A)各成员所需内存量的总和B)成员中占内存量最大者所需内存容量C)结构中第一个成员所需内存容量D)结构中最后一个成员所需内存容量37.若typedef char STRING[255];STRING s;,则s是【37】A)字符指针数组变量B)字符数组变量C)字符变量D)字符指针变量38.若已定义:int *p,a;,则语句p=&a;中的运算符“&”的含义是【38】A) 位与运算B) 逻辑与运算C) 取指针内容D)取变量地址39.若有定义char *p,ch;则不能正确赋值的语句组是【39】A)p=&ch;scanf(“%c”,p);B)p=(char *)malloc(1); *p=getchar();C)*p=getchar();p=&ch;D)p=&ch;*p=getchar();40.下面程序段的运行结果是【40】char s[]=“ABC”;int i;for(i=0;i<3;i++) printf(“%s”,&s[i]);A) ABC B) ABCABCABC C) AABABC D)ABCBCC1.下列叙述中正确的是A) C语言编译时不检查语法B) C语言的子程序有过程和函数两种C) C语言的函数可以嵌套定义D) C语言所有函数都是外部函数0.5 C) 2L D) '\72'3.下列选项中,合法的C语言关键字是A) V AR B) cher C) integer D) default4.设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为A) 不定值B) 4 C) 3 D) 15.下面程序段的运行结果是【5】float y=0.0,a[]={2.0,4.0,6.0,8.0,10.0},*p;int i;p=&a[1];fo r(i=0;i<3;i++) y+=*(p+i);printf(“%f\n”,y);A) 12.0000 B) 28.0000 C) 20.0000 D) 18.00006.下面程序段的运行结果是【6】char c[]={‘a’,‘b’,‘\0’,‘c’,‘\0’};printf(“%s\n”,c);A) ab c B) ‘a’‘b’C) abc D) ab7.下面程序段的运行结果是【7】char s[10],*sp=“HELLO”;strcpy(s,sp);s[0]=‘h’;s[6]=‘!’;puts(s);A) hELLO B) HELLO C) hHELLO! D) h!8.若有定义int a[3][5],i,j;(且0≤i<3,0≤j<5),则a[i][j]的地址不正确表示是【8】A) &a[i][j] B) a[i]+jC) *(a+i)+j D) *(*(a+i)+j)9.若有定义int *p[4];,则标识符p是一个【9】A) 变量的指针变量B) 指向函数的指针变量C) 指向有四个整数元素的一维数组的指针变量D)指针数组名,有四个元素,每个元素均为一个指向整型变量的指针10.若有定义char *language[]={“FORTRAN”, “BASIC”,“PASCAL”,“JA V A”, “C”};则language[2]的值是【10】A) 一个字符B) 一个地址C) 一个字符串D) 不确定11.C语言规定,函数返回值的类型由【11】所决定。
北京理工大学珠海学院2009 ~ 2010学年第二学期《C语言程序设计(B)》期末试卷(A)适用年级专业:2009级机械电子工程、车辆工程、机械与自动化试卷说明:闭卷,考试时间120分钟注意:请将答案填写在答题纸上一、选择题(每题1分,共20分)1. C语言程序的执行,总是起始于_____。
A.程序中的第一条可执行语句B.main函数C.程序中的第一个函数D.包含文件中的第一个函数2. C 语言程序中可以对程序进行注释,注释部分必须用符号_____括起来。
A.‘{‘ 和’}’B.‘[‘和’]’C.“/*”和”*/”D.“*/”和”/*”3. 以下不能定义为用户标识符是。
A. MainB. _0C. _intD.sizeof4. 在C语言中,字符型数据在内存中以形式存放。
A.原码B.BCD码C.反码D.ASCII码5. 下列运算符中,要求运算对象必须是整数的是。
A. /B.*C. %D.!6. 多重if_else语句嵌套使用时,寻找与else配套的if方法是。
A. 上面最近的的ifB. 其上最近的没有其他else配对的ifC. 下面最近的ifD. 同行上的if7. 下述表达式中,可以正确表示x≤0或x≥1的关系。
A.(x>=1) | | (x<=0)B.x>=1 | x<=0C.x>=1 && x<=0D.(x>=1) && (x<=0)8. 有以下程序void main(){ char a='a',b;printf("%c,",++a);printf("%c\n",b=a++);}后的输出结果是A. b,bB. b,cC. a,bD. a,c9. 逗号表达式(a=3*5,a*4),a+15的值是。
A.15B.60C.30D.不确定10. 有如下程序void main(){ int i,sum;for(i=1;i<=3;sum++)sum+=i;printf(“%d\n”,sum);}该程序的执行结果是。
《C语言程序设计》考试大纲Ⅰ考试性质普通高等学校本科插班生招生考试是由专科毕业生参加的选拔性考试。
高等学校根据考生的成绩,按已确定的招生计划,德、智、体全面衡量,择优录取。
因此,本科插班生考试应有较高的信度、效度、必要的区分度和适当的难度。
本大纲适用于所有需要参加《C语言程序设计》考试的各专业考生。
Ⅱ考试内容总体要求:考生应按本大纲的要求了解或理解“C语言程序设计”中的数据类型、运算符与表达式、顺序结构、选择结构、循环控制、数组、函数、指针、预处理命令、结构体与共用体、文件的基本概念。
熟练掌握程序设计的基本方法和C语言本身的语法、语句和使用方法。
掌握一般问题的分析思路、数据存储结构表达及建立在存储结构之上的程序设计方法,具备初步运用C语言解决问题的程序设计能力;能熟练地阅读、理解和编制简单的C程序;具备进一步学习计算机各专业后续课程的能力和基础。
一、数据类型、运算符与表达式⒈考试内容⑴关键字与标识符的概念:关键字的含义,标识符的定义,常量和变量的分类。
⑵数据类型:数据类型的含义、特点,不同类型常量的表达,不同类型变量的定义、赋初值方法。
⑶运算符:各类运算符的含义、优先级,各类表达式的表示方法、运算特点、值的类型和计算方法,各类公式的表达式描述和各类表达式的混合运算。
⒉考试要求⑴理解关键字与标识符的概念、应用特点,理解数据类型的含义和常量、变量的分类。
⑵掌握各数据类型的含义、特点,不同类型常量的表达,不同类型变量的定义和赋初值方法。
⑶熟练掌握各类运算符的含义、优先级,各类表达式的表示方法、运算特点、值的类型和计算方法。
能够进行各类公式的表达式描述和各类表达式的混合运算。
二、顺序结构程序设计⒈考试内容⑴输入输出:常用的输入输出函数,基本的输入输出格式。
⑵赋值语句:赋值语句功能和表达方法。
⑶顺序程序设计:编写顺序结构语句及程序。
⒉考试要求⑴了解数据输入输出的概念以及在C语言中的实现方法。
⑵掌握赋值语句表达方法;掌握两组输入输出函数的格式、表达方式和使用功能、特点。
《C语言程序设计》复习大纲《C语言程序设计》复习大纲第一章C语言程序设计初步1、从编写一个C程序到完成运行一般经过以下几个步骤:编辑、编译、连接、执行。
2、标识符命名规则:由英文字母、数字和下划线组成;长度不大于32个字符;必须以英文字母或下划线开头;不能和关键字重名;区分大小写;命名要“见名知意”。
3、C语言的输入输出功能是由C的库函数提供的。
4、C程序是由函数组成的,一个完整的程序必须有一个main函数,即主函数,程序总是从main 函数开始执行的,不论main函数在整个程序的什么位置。
第二章程序设计基础知识1、算法的特性:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。
第三章C数据及其表达式1、C语言中基本数据类型有:整型、字符型、实型、枚举型。
2、C语言中有四种基本常量:整形常量、实型常量、字符常量和字符串常量。
两种特殊常量:转义字符常量和符号常量。
3、一个整型常量以2个字节存储,一个长整型数占4个字节。
4、字符常量用单引号括起来,字符串常量用双引号括起来;每个字符串结尾都有一个字符串结束标志’\0’,’a’和”a”最大的区别就是”a”实际上是两个字符:’a’和’\0’; 而’a’只是一个字符本身。
5、逗号表达式的一般形式为:表达式1,表达式2;逗号表达式的计算过程是:先求解表达式1,再求解表达式2。
整个逗号表达式的值是表达式2的值。
6、++i,--i i的值先增1(或减1),然后再参与其他运算;i++,i-- 先参与其它运算,然后使i值增1(或减1)第四章顺序结构程序设计1、程序分为顺序结构、选择结构或分支结构、循环结构。
2、C语言的语句大体上分为五种类型:1、函数调用语句;2、表达式语句;3、控制语句;4、空语句;5、复合语句。
3、语句在最后必须出现分号,分号是语句中不可缺少的一部分。
4、putchar(c)的功能是向屏幕输出一个字符;printf(“格式化字符串”,输出项表)的功能是按用户指定的格式,把指定的数据显示到屏幕上。
考试时间大定于15周,6月2日,机试时间等候通知。
考试范围:
一、题型:
单项选择题(每题1分,共50分) ,填空题(每空1分,10个空,共10分)。
程序阅读试题(共10题,每题4分,共40分)
二、范围
第一章
P2 1.12C语言的特点(C语言关键字有哪些)
P3 1.2C语言的基本结构
第二章
2.2常量和变量
2.3整型数据
2.4实型数据 2.4.1、 2.4.2(1.;2)2.4.3
2.5字符型数据
2.6 算术运算符和表达式
2.7赋值运算符和表达式
2.8逗号运算符和表达式
2.9位运算
2.10
第三章
3.1、3.2、3.3 3.3.1printf函数(1;2输出格式中表3.1;3) 3.3.2
第四章
第五章循环结构
5.2、5.3、5.4、5.5 、5.6、5.7
第六章
6.1 6.2 6.3
第七章
7.2、7.3、7.4、7.5(7.5.1、7.5.2)7.6
7.7变量的存储类别
第八章
第九章
9.1-9.6(多级指针不考)
P166最后一段要求学生掌握
第10章
10.1、10.2、10.3、10.4、10.8、10.10 第11章文件
11.1(11.1.2)
11.3、11.4(11.4.1) 、11.5。
C语言程序设计期末考试试题及其答案一、单项选择题(本大题共20题,每题2 分,共40分)1、以下不是C语言的特点的是( )A、C语言简洁、紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件进行操作D、C语言移植性好2、以下不正确的C语言标识符是( )A、ABCB、abcC、a_bcD、ab.c3、一个C语言程序是由( )A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( )A、有零个或多个输入B、有零个或多个输出C、有穷性D、可行性5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( )A、intB、floatC、doubleD、不确定6、在C语言中,char型数据在内存中的存储形式是( )A、补码B、反码C、源码D、ASCII码7、有如下程序,输入数据:12345M678<cR>后(<CR>表示回车),x的值是( ) 。
#include<stdio.h>main(){int x;float y;scanf("%3d%f",&x,&y);}A、12345B、123C、45D、3458、若有以下定义int a,b; float x,则正确的赋值语句是( )A、a=1,b=2B、b++;C、a=b=5D、b=int(x);9、以下程序的执行结果是( )#include<stdio.h>{int i=10,j=10;printf("%d,%d\n",++i,j--);}A、11,10B、9,10C、11,9D、10,910、巳知字母A的ASCII码是65,以下程序的执行结果是( )#include<stdio.h>main(){char c1='A',c2='Y';printf("%d,%d\n",c1,c2);A、A,YB、65,65C、65,90D、65,8911、下列运算符中优先级最高的是( )A、<B、十C、%D、!=12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。
计算机科学与技术专业《C语言程序设计》科目考试大纲一、课程性质与考试基本要求《C语言程序设计》课程是计算机专业的专业基础课程。
这门课程的主要特点是实践性强,不仅要学习基本理论知识,更要注重上机实践,通过上机实践验证程序的正确性,掌握和巩固算法的设计知识。
设立本门课程的目的是通过学习C语言,使学生学会用计算机语言编程序解决实际问题。
通过本课程的学习,使学生了解算法的基本概念,会根据算法编制相应的程序,并初步掌握软件开发的基本技巧,同时也为后继课程的学习打下坚实的基础。
提高学生分析和解决问题的能力。
二、考试方式与试题类型(含各题型分数)1 .考试方式:闭卷、笔试。
2 .试卷结构:考试题型为单项选择题(70分)、读程序写结果(30分)、程序填空(20分)、编程题(30分)。
3 .试卷分数:试卷满分150分。
4 .考试时间:120分钟。
三、课程考试内容及要求第1部分程序设计和C语言本章重点:C语言的结构与上机的环境、上机步骤。
考试内容:程序的构成要素:main函数,其他的函数等。
源程序的书写格式。
C语言的风格。
C语言出现的历史背景。
C语言的特点。
简单的C程序介绍。
C程序的上机步骤。
考核要求:(1)了解C语言的背景。
(2)理解C语言程序的结构,C语言程序设计的风格。
(3)应用C程序的上机环境、步骤。
第2部分顺序程序设计本章重点:常用数据类型、常用运算符、数学公式转化为C语言表达式的基本能力、数据的输入输出,顺序结构程序设计。
主要内容:C的数据类型(基本类型、构造类型、指针类型、空类型)及定义变量的方法;C运算符的种类、运算优先级和结合性;不同类型数据间的转换与运算;数据的输入与输出、输入输出函数的调用:常用输入输出函数:scanf›Printf、getchar、PUtChar、gets、puts等。
考核要求:(1)了解基本类型及其常量的表示法。
(2)理解变量的定义及初始化方法,运算符与表达式的概念,C语言的自动类型转换和强制类型转、赋值的概念。
《C语言程序设计》考纲、试题、答案解析一、考试说明(一)说明:考试为闭卷,试卷满分为100分,考试时间90分钟。
(二)题型及各题型所占分数和相应的答题技巧1、选择题(每题2分,共20分)2、填空(每空3分,共15分)3、程序填充(每空5分,共25分)4、运行结果题(每题10分,共20分)5、编程题:(每题20分)答题技巧:选择与题干相匹配的答案,注意错误答案干扰。
答题技巧:理解程序要点,注意关键语句的书写。
本课程内容相对较为琐碎,需要理解掌握的东西比较多,希望学员们能够在理解算理的基础上完成复习工作。
二、重点内容第一章算法算法的五种描述方法第二章C语言程序设计基础1.C程序的基本结构例如:/* This is the first program */(注释信息)main()(主函数){printf(”Welcome to C! \n”);(函数调用,printf是函数名)}(1)程序的第一行是注释信息(2)main开始到最后的}称为函数2.C程序的执行过程从本程序的main开始,到main函数结束第二章数据类型与表达式1.C语言规定,符号常量和变量必须“先定义,后使用”。
2.C语言的基本数据类型及各自的定义方式(1)整型数据C语言提供了3种表示整数常量的方法:➢十进制整数:例如10、-23、89等。
➢八进制整数:以数字0开头的数是八进制数,例如011实际上相当于十进制的9,-011是十进制的-9。
八进制的数位值是0、1、……8。
➢十六进制整数:以0x或0X开头的是十六进制数。
例如:0x18实际上是(18)16,相当于十进制数的24。
整型变量的定义格式:“数据类型名标识符变量名”即“int 变量名;”,整型类型名int与变量名之间要用空格分开,最后还要以分号结尾。
例如:int a;定义了一个整型变量,而int a,b,c;定义了3个整型变量。
并且可以赋初值。
(2)字符型数据C语言中,用单引号括起来的是字符常量,用双引号括起来的被称为字符串常量。
南昌大学软件学院C语言程序设计工程实训大作业班级:09软件技术(2)班学号:8001509107姓名:吴承增指导老师:危建国2010年12月10日系统说明书1.问题描述:该程序包内容包括以下的模块,均用子函数完成:(1)主菜单(2)输入若干条记录并保存文件(指学生的信息)(3)学生信息录入、修改、删除、查询、存储。
(4)学生信息的浏览及排序(冒泡排序算法)。
(5)学生成绩的录入、修改。
(6)统计及格和优秀人数(7)退出系统2.程序设计和程序流程图:解决方案:主函数流程图:各部分功能的流程图:录入学生成绩流程图:统计功能流程图如图3所示:图3 统计模块流程图冒泡排序流程图:排序学生信息流程图:删除学生成绩信息流程图:3.系统的基本功能(主要数据和函数功能描述):char xh[15]; //以字符串数组形式存储学生学号char name[25]// 以字符串数组形式存储学生姓名char sex[5]; //性别float sxcj; //数学成绩float yycj; //英语成绩float Cyycj; //C语言成绩float ave; //平均成绩float sum; //总成绩#define N 4 //宏定义学生#define MAX 60 //学生最大个数int nCOUNT=0; //记录当前学生个数struct student //定义结构体学生int ScoreNew() //录入学生成绩int average() //求平均数int xsxscj() //显示输入学生信息、将学生打印到屏幕上int xsxsxx() //显示学生信息int xhcjpx() //按学生学号排序学生信息int sxcjpx()按数学成绩排序学生信息int yycjpx()按英语成绩排序学生信息int Cyypx() //按C语言成绩排序学生信息int zcjpx()按总成绩排序学生信息int pxxsxx()//排序学生信息int axhcx() //按学号查询int axmcx() //按姓名查询int SearchStud() //查询学生成绩信息int zjxsxx() //增加学生信息int xgxsxx() //修改学生信息int scxsxx() //删除学生信息int gxxscj() //更新学生信息int tjxscj() //统计学生成绩int save() //保存到文件((fp=fopen("stu_list.txt","wb"))==NULL) //以只读方式打开文件stu_list.txt (fwrite(&str[i],sizeof(struct student),1,fp)!=1) //创建文件并以二进制形式打开int xswj() //显示文件信息int main() //主函数mainmemu4.拟采用开发平台:Visual C++,Borland C++等。
《C语言程序设计技巧》考试范围考试时间:初步定于12月23日(周三下午)一、单项选择题(每题2分,共50分)1.main函数在C语言中,main函数的位置?C程序从什么函数开始执行?一个C语言程序可以包括几个main函数?2.在C语言中,每条语句是用“;”结束;一行可以写几条语句?3.转义字符。
(1)printf("%d\n",strlen("abc\bd\t\'\x80\nabc\\\"\200\n"));输出16(2)函数printf("%d\n",strlen("ab\n\t\\\""))的输出结果是。
4.四舍五入运算。
设变量n为float类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是。
A) n=(n*100+0.5)/100.0 B) n=(int)(n*100+0.5)/100.0C) n=n*100+0.5/100.0 D) n=(n/100+0.5)*100.05.非法的字符串常量与标识符。
'abc',"1212\",[abc],{qwer}5e,-abf,+abc6.表达式类型。
(1)设有说明:char w; int x; float y; double z; 则表达式w*x+z-y 值的数据类型为doubel 。
(2)已知int b;float d;char a;a+b+123.456+d 的类型是double 。
7. 写表达式。
(1)代数式a b c a b+-的C 语言表达式是(a+b)/(a-b)*c (2)以下不能正确表示代数式cd ab 2的C 语言表达式是( )。
A )2*a*b/c/d B )a*b/c/d*2 C )a/c/d*b*2 D )2*a*b/c*d8. 进制与输入输出。
d(或i)-int ,o -八进制,x(或X)-十六进制,u -unsigned int ,f -实型,c -字符,s -字符串。
(1)C 源程序中不能表示的数制是( )。
A )二进制B )八进制C )十进制D )十六进制(2)若有定义“int a;float b;”,则正确的输入输出为 。
A )scanf("%f%d",&a,&b); printf("%d,%d\n",a,b);B )scanf("%d%f",%a,%b); printf("%d,%f\n",a,b);C )scanf("%d%f",&a,&b); printf("%d,%f\n",a,b);D )scanf("%d%d",&a,&b); printf("%f,%d\n",a,b);(3)若有定义语句:double x,y,*px,*py;执行了px=&x;py=&y;之后,正确的输入语句是A)scanf("%f%f",x,y);B)scanf("%f%f" &x,&y);C)scanf("%lf%le",px,py);D)scanf("%lf%lf",x,y);(4)有以下程序#include <stdio.h>main(){ int a1,a2; char c1,c2;scanf("%d%c%d%c",&a1,&c1,&a2,&c2);printf("%d,%c,%d,%c",a1,c1,a2,c2);}若通过键盘输入,使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为字符b,程序输出结果是:12,a,34,b 则正确的输入格式是(以下_代表空格,<CR>代表回车)A)12a34b<CR>B)12_a_34_b<CR>C)12,a,34,b<CR>D)12_a34_b<CR>9. 条件表达式。
在if、do-while、while、for语句中的条件表达式都可以是任意合法的表达式。
如if(a+5)、if(b=7)……。
10. 写if语句的运行结果。
(1) #include <stdio.h>main( ){ int x;scanf("%d",&x);if(x++>5) printf ("%d",x);else printf ("%d\n",x--);}输入6和4,则输出结果是_____(2)#include <stdio.h>main(){ int x;scanf("%d",&x);if(x<=3);else if(x!=10) printf("%d\n",x);}(3) #include <stdio.h>main(){ int x=3,y=0,z=0 ;if(x=y+z) printf ("****");else printf ("####");}(4)以下选项中与if(a==1)a=b; else a++;语句功能不同的switch语句是A)switch(a) B)switch(a==1){ case 1:a=b;break; { case 0:a=b;break;default:a++; case 1:a++;} }C)switch(a) D)switch(a==1){ default:a++;break; { case 1:a=b;break;case 1:a=b; case 0:a++;} } (5)有以下程序#includemain(){ int a=1,b=2,c=3,d=0;if(a==1)if(b!=2)if(c==3) d=1;else d=2;else if(c!=3) d=3;else d=4;else d=5;printf(“%d\n”,d);}程序运行后的输出结果是 ______ 。
11. 逻辑运算。
(1)main(){int a,b,c,d;a=b=c=0;d=a++ && b++ || c++;printf("%d,%d,%d,%d\n",d,a,b,c);d=a++ || (b++ && c++);printf("%d,%d,%d,%d\n",d,a,b,c);}(2)有以下程序#include <stdio.h>main(){ int a=1,b=2,c=3,d=0;if (a==1 && b++==2)if (b!=2||c--!=3)printf("%d,%d,%d\n",a,b,c);else printf("%d,%d,%d\n",a,b,c);else printf("%d,%d,%d\n",a,b,c);}程序运行后输出结果是A)1,2,3B)1,3,2C)1,3,3D)3,2,112.写switch语句执行结果。
(1) #include <stdio.h>main( ){ int x=1,y=0,a=0,b=0 ;switch(x){ case 1:switch(y){ case 0:a++;break ;case 1:b++;break ;}case 2:a++;b++;break ;}printf ("a=%d,b=%d\n",a,b);}(2)int a=1,b=0;switch (a){case 1:switch (b){case 0: printf("**0**"); break;case 1: printf("**1**"); break;}case 2: printf("**2**"); break;}A)**0** B)**0****2** C)**0****1****2** D)有语法错误13.循环次数。
(1) int n=0;do { ++n; }while(n<=0);(2) int n=0;while(1){ n++; }(3) int n=10;while(n); { n--; }(4) for(n=0,i=1; ; i++) n+=i;(5) for(i=0, j=5;++i!=--j;) printf("%d %d", i, j);(6) for(x=0,y=0;(y!=123)&&(x<4);x++);(7)一下程序段中的变量已正确定义for(i=0;i<4;i++,j++)for(k=1;k<3;k++); printf("*");程序段的输出结果是A)********B)****C)**D)*(8)有以下程序# include <stdio.h>main(){ int i=5;do{ if (i%3=1)if (i%5==2){ printf("*%d", i); break;}i++;} while(i!=0);printf("\n");}程序的运行结果是( )。
A )*7B )*3*5C )*5D )*2*614.累加、连乘。
例如:(1)计算s=1×2×3×…×10(2)计算y x ,其中y 为整型变量且y ≥0(3)计算∑==201i i!s(4)求下列式子的值。
1-21+31-41…+991-100115.数组的使用。
(1)若有说明:int a[10];则对数组元素的正确引用是 。
A )a[10]B )a[3.5]C )a(5)D )a[10-10](2)若二维数组a 有m 列,则计算任一元素a[i][j]在数组中位置的公式为 。
A )i*m+jB )j*m+iC )i*m+j-1D )i*m+j+1(3)若有说明:int a[][3]={1,2,3,4,5,6,7};则a 数组第一维的大小是 。
A )2B )3C )4D )无确定值(4)若有说明:int a[3][4];则对a 数组元素的非法引用是 。