编程规范课程试题A卷20070307
编程规范测试试卷
《C/C++编程规范》测试试卷B(总分100分)涉及的内容:基本原则、布局格式、注释、命名规则、变量常量与类型、表达式与语句、函数与过程、可靠性、可测试性、断言与错误处理说明:考试题目的答案以编程规范作为依据,并非以C/C++语法规则为依据。
一、填空(20分)1.在C/C++程序中,包含标准库头文件用号,包含非标准库头文件用号。
2.C/C++程序中每一行的代码和注释不能超过列。
3.C++语言中,多行注释采用,单行注释采用4.一般情况下,源程序有效注释量必须在以上。
5.变量名长度应小于个字符,以保持与ANSI C标准一致。
6.在命名规则中,标识符的命名应当符合原则。
7.结构名、联合名、枚举名由前缀开头,事件名由前缀开头。
8.应当将指针变量用“==”或“!=”与比较。
9.在switch语句中,每一个case分支必须使用结尾,最后一个分支必须是分支。
10.如果函数没有参数,则用填充。
11.指针类型变量必须初始化为。
12.如果参数是指针,且仅作输入用,则应在类型前加。
13.当结构变量作为参数时,应传送结构的而不传送整个结构体,并且不得修改结构中的元素,用作输出时除外。
14.不要省略返回值的类型,如果函数没有返回值,那么应声明为类型。
15.在编写派生类的赋值函数时,必须要对重新赋值。
16.用来检查程序正常运行时不应发生但在调测时有可能发生的非法情况。
二、判断(10分):以下的叙述中可能存在错误,请在您认为正确的叙述后面划”√”,在错误的叙述后面划”X”。
1.可以在程序中定义一个多功能的变量,使其用作多种用途。
2.可以使用TAB键进行缩进,也可以使用空格进行缩进。
缩进为4个空格。
3.if、else、else if、for、while、do等语句自占一行,执行语句不得紧跟其后。
不论执行语句有多少都要加{ }。
4.所调用函数的错误返回值如果没有实际意义,可以不必对其进行处理。
5.不可在for 循环体内修改循环变量,防止for 循环失去控制。
2007-2008年c语言考试A卷
吉林大学农学部2007—2008学年第二学期《C 语言程序设计》考试试卷(A 卷)(考试时间:120分钟,本卷共3页,共印 份)10道小题,每道小题2分,满分20分)1.下列叙述中不正确的是( )A) 一个C 源程序可由一个或多个函数组成 B) 一个C 源程序必须包含一个main 函数 C) C 程序的基本组成单位是函数D) 在C 程序中,注释说明只能位于一条语句的后面2.若有定义:int a=7; float x=2.5, y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值是( ) A) 2.500000 B) 2.750000 C) 3.500000 D) 0.000000 3.若有代数式bcae 3,则不正确的C 语言表达式是( )A) a/b/c*e*3 B) 3*a*e/b/c C) 3*a*e/b*c D) a*e/c/b*34.若有定义:int m=5, y=2; 则计算表达式y + = y - = m * = y 后的y 值为( ) A) -15 B) -8 C)10 D) -165.执行以下程序段后,变量a, b, c 的值分别是( ) int x=10, y=9; int a,b,c;a = (--x= =y++) ? - -x : ++y; b=x++; c=y;A) a=9,b=9,c=9 B) a=8,b=8,c=10 C) a=9,b=10,c=9 D) a=1,b=11,c=10 6.有以下程序 main() { int i;for(i=0;i<3;i++) switch(i) { case 1: printf("%d",i); case 2: printf("%d",i); default: printf("%d",i); } }执行后输出结果是( ) A) 011122 B) 012 C) 012020 D) 120 7.下面程序的运行结果是( ) int x=-1; do{ x=x*x; } while(!x);A) 是死循环 B) 循环执行二次 C) 循环执行一次 D) 有语法错误 8.若有以下程序段: … …int a[]={4,0,2,3,1}, i, j, t; for(i=1; i<5; i++) {t=a[i]; j=i-1;while(j>=0 && t>a[i]) {a[j+1]=a[j]; j--; }a[j+1]=t; }… …则该程序段的功能是( )A) 对数组a 进行插入排序(升序) B) 对数组a 进行插入排序(降序) C) 对数组a 进行选择排序(升序) D) 对数组a 进行选择排序(降序)9.若二维数组a 有m 列,则计算任一元素a[i][j]在数组中位置的公式为( )。
编程规范试题
编程规范考核试题判断题:判断对错,如果错,则说明理由1.程序块要采用缩进风格编写,缩进的空格数为4个。
2.相对独立的程序块之间、变量说明之后必须加空格。
3.if、for、while、switch 等与后面的括号间不应加空格。
4.较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符不能放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。
5.不允许把多个短语句写在一行中,即一行只写一条语句。
6.在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或者前后要加空格;进行非对等操作时,如果是关系密切的立即操作符(如->),后不应加空格7.不要使用难懂的技巧性很高的语句,除非很有必要时。
8.下列语句的写法正确,如果是错的,正确的写法是?if(i == 0) return;9.下列语句的写法正确,如果是错的,正确的写法是?for(i=0;i<9;i++){n=n+1;}10.注释可以放在所描述内容的下方。
11.注释必須从行首开始书写。
12.对变量的定义和分支语句(条件分支、循环语句等)必须编写注释。
13.注释格式尽量统一,统一使用“/* ……*/”14.应尽量设计面面俱到、非常灵活的数据结构。
15.对接口函数参数的合法性检查,缺省是由函数调用者负责。
16.功能不明确较小的函数,特别是仅有一个上级函数调用它时,应考虑把它合并到上级函数中,而不必单独存在。
17.在多重循环中,应将最忙的(循环次数多的)循环放在最外层。
18.紧凑的代码代表高效的机器码。
19.函数中分配的内存,在函数退出之前不需要释放,因为系统会自动回收。
问答题:1.对齐只使用空格键,不使用TAB键的原因是什麽?2.说明性文件(如头文件.h文件、.inc文件、.def文件、编译说明文件.cfg等)头部应进行注释,注释必须列出哪些内容?头文件的注释中还应有函数功能简要说明。
编程规范课程试题A卷20070307
一. 判断题(共19题,每题2分,直接在括号内打“√”或“×”)(对)1、不允许把多个短语句写在一行中,即一行只写一条语句。
(对)2、如果编程工具提供将TAB键转换成空格键,对齐、缩进可以使用TAB 键,否则应使用空格键。
(对)3、数据结构声明(包括数组、结构、类、枚举等),如果其命名不是充分自注释的,必须加以注释。
(对)4、i,j,k只可以用作循环变量,不能用于其它局部变量。
(错)5、当一个表达式包含多个运算符时,应该尽量用默认优先级来保证表达式的运算顺序。
(对)6、由于引用了全局变量和静态局部变量的函数不方便重入,因此在实时系统编程中,应尽量减少对全局变量和静态局部变量的使用。
(错)7、应当尽可能设计功能全面、灵活的数据结构,以提高效率。
(错)8、结构中元素的排列不影响结构占用空间的大小。
(错)9、断言可以用来处理程序的任何错误情况。
(错)10、在一般使用的情况下,当前代码,处理一个1000条记录的结果只要2000毫秒。
采用了新的处理机制,处理同样大小的结果只要1999毫秒,这种提高还是有重要意义的。
(对)11、提高代码效率应当保证软件系统的正确性、稳定性、可读性及可测性的前提下进行。
(错)12、内存操作越界可以通过测试发现,设计时不必过分关注.(对)13、对程序进行编译时,必须打开编译器的所有告警开关。
(对)14、用宏定义代替表达式时,要使用完备的括号,保证宏定义的完整性。
(对)15、单元测试开始要跟踪每一条语句,并观察数据流及变量的变化。
不能进行单步跟踪的代码,要采用日志输出等形式,跟踪数据流和变量的变化;(对)16、一个函数仅完成一件功能。
(对)17、对参数输入和非参数输入都要检查有效性。
(错)18、应该设计高扇出、合理扇入的函数。
(错)19、应该为函数功能的扩展预留尽可能多的参数接口。
二、单项选择题(共17题,每题2分)( D )1、下面哪条语句符合编程规范:(A)for (...) {... // program code}(B)if (...){... // program code}(C)void example_fun( void ){... // program code}(D)以上都不对。
Java编程规范试题课件.doc
JAVA编程规范-- 试题姓名:工号:部门:成绩:一. 判断题(共15题,每题2分,直接在括号内打“√”或“×”)1、任何时候都不要使接口可以序列化。
x2、相对独立的程序块之间、变量说明之后必须加空行。
√3、当程序需要释放对象的时候,应该手工调用finalize 方法以释放对象。
x4、公司的规范要求注释率是20%以上,并且必须有助于对程序的阅读理解。
x5、为了程序更加简洁,我们应该尽量使用下面的方式来赋值: a = b = 1 。
x6、每个类都需要定义构建器。
x7、类名、方法名、属性名的命名,都应该使用意义完整的英文描述。
√8、main() 方法的定义是public static void main(String args[]) 。
x9、常量名应该使用全大写,英文单词之间用下划线或者- 分隔开。
并且,常量应该使用final static 修饰。
x10、公有方法参数名可以和属性名相同,但局部变量不能和属性名相同。
√11、一两行代码就能完成的功能没有必要编写方法实现。
x12、对于模块间接口方法的参数的合法性检查,调用者和被调用者都应该对参数进行合法性检查。
x13、运行期异常使用RuntimeException 的子类来表示,必须在方法声明上加throws 子句。
x非运行期异常是从Exception 继承而来的,不用在可能抛出异常的方法声明上加throws 子句。
x14、使用ObjectStream 的方法后,调用release() ,释放对象。
X2017-10-11 第1 页, 共21 页15、减小单个方法的复杂度,使用的if, while, for, switch 语句要在10个以内。
√二、单项选择题( 共23题,每题2分 )( c )1、排版时,代码缩进应该采用的方式是:(A)Tab 缩进(B)2 个空格缩进(C)4 个空格缩进(D)8 个空格缩进(c )2、下面哪条语句是不符合规范的:(A)int count = 0;int num = 0;....;//program codeif (count == num){....;}(B)long count = 0L;long num = 0L;....;//program codeif (count == num){2017-10-11 第2 页, 共21 页....;}(C)float count = 0f;float num = 0f;....;//program codeif (count == num){....;}(D) 以上语句都符合规范( b )3、对命名规范描述错误的是:(A)、包名单词的首字母应该大写。
2007级程序设计基础(一)期末考试参考答案A卷
2007级《程序设计基础(一)》期末考试参考答案(A卷)一、单选题:(每题1分,共20分)1. D2. A3. C4. B5. A6. C7. D8. A9. D10. B11. B12. B13. A14. B15. C16. B17.C 18. D19. C 20. C二、程序阅读题:(每题4分,共24分)1.j=82. 2 4 0 8 103.9*7*8*5*3*4.before swap a[0]=5,a[1]=7after swap a[0]=5,a[1]=75.61231116. 0 3 6 91 4 7 102 5 8 113 6 9 12三、改错题:(每题5分,共15分)1.#include <stdio.h> -----------1分void fun(char s[],char c); -----------1分void fun(char s[],char c) -----------1分{int i,j;for(i=j=0;s[i];i++)if(s[i]!= c)s[j++]=s[i]; ----------1分s[j]='\0'; ----------1分}2.#include <stdio.h>int plus(int ,int); ----------0.5分void main(){int x,y,z; ----------1分scanf("%d,%d",&x,&y); ----------1分z=plus(x,y); ----------0.5分printf("The sum is %d",z);}int plus(int a,int b) ----------1分{int c; ----------1分c=a+b;return c;}3.#include <stdio.h>int fun(float x[],int n){int i,c=0; ----------1分float xn=0; ----------1分for(i=0;i<n;i++)xn=xn+x[i]/n; ----------1分printf("average=%.2f\n",xn); ----------1分for(i=0;i<n;i++)if(x[i]>=xn) ----------1分c++;return c;}四、程序填空:(每空2 分,共16分)⑴flag*1.0/k ⑵flag*=-1(或flag=-flag)⑶top<=bottom ⑷(top+bottom)/2 ⑸key>list[mid] ⑹return mid (或index=mid;break;)⑺x ⑻x*(1-px(x,n-1))五、程序设计题:(第1小题5分,第2小题8分,第3小题12分,共25分)1.#include <stdio.h>void main(){int x,max;printf("input a group of integer end of 0:\n");scanf("%d",&x); ----------1分max=x; ----------1分while(x!=0) ----------1分{scanf("%d",&x);if(max<x) ----------1分max=x;}printf("max=%d\n",max); ----------1分}2.#include <stdio.h>void main(){int i,j,k; ----------1分for(i=1;i<100;i++) ----------1分for(j=1;j<10;j++) ----------2分{k=100-i-j; ----------1分if(i*0.4+j*4+k*0.2==40&&k>0) ----------2分printf("苹果%3d,西瓜%3d,梨%3d\n",i,j,k); ----------1分}}3.#include <stdio.h>#define N 10void sort(int [],int); ----------0.5分void insert(int [],int,int); ----------0.5分void main(){int i,key,a[N+1];for(i=0;i<N;i++) ----------1分scanf("%d",&a[i]);sort(a,N); ----------0.5分printf("排序后:\n");for(i=0;i<N;i++)printf("%5d",a[i]);printf("\n请输入要插入的数:");scanf("%d",&key);insert(a,key,N+1); ----------0.5分printf("\n插入后:\n");for(i=0;i<N+1;i++) ----------1分printf("%5d",a[i]);}void sort(int a[],int n){int i,j,temp;for(i=0;i<n-1;i++) ----------1分for(j=0;j<n-1-i;j++) ----------1分if(a[j]>a[j+1]) ----------1分{temp=a[j]; ----------1分a[j]=a[j+1];a[j+1]=temp;}}void insert(int a[],int k,int n){int i,j;for(i=0;i<n-1;i++) ----------1分if(k<a[i]) ----------1分break;for(j=n-1;j>i;j--) ----------1分a[j]=a[j-1];a[i]=k; ----------1分}。
C语言程序设计2007~2008学年第二学期期末考试试卷(A)
南昌大学2007~2008学年第二学期期末考试试卷6、在程序中执行到________语句时,将结束所在函数的执行过程,返回到调用该函数的位置。
7、以下程序main(){int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};int i,s=0;for(i=0;i〈4;i++) s+=aa[i][1];printf(%d\n,s);}程序运行后的输出结果是________________。
8、以下fun函数把ch中的大写字母转换成字母序列中的下一个大写字母,字母Z转换成字母A,其它字符不变,返回转换后的字母或其它字符。
请填空。
char fun(char ch){if(ch= =’Z’) ch=__________;else if(ch〉='A’&&ch<=’Y’) ch=__________;return ch;}9、下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数.#include 〈stdio。
h>void main(void){int i, j;for(i=0; i〈10; i++) {j = i*10+6;if (_____ _____ ) continue;printf(”%d ”,j);}}10、以下程序的功能是调用函数fun计算:m=1-2+3-4+…+9—10,并输出结果。
请填空。
int fun(int n){int m=0,f=1,i;for(i=1;i<=n;i++){m+=i*f;f= __________ ;}return m;}main(){printf("m=%d\n”,________ __);}11、下面程序段是输出两个字符串中对应字符相等的字符。
请选择填空.char x[]=”programming”;char y[]=”Fortran”;int i=0;while (_______________ __ __){if (x[i]==y[i]) printf ("%c”,x[i]);else i++;}}12、以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和.请填空。
C++2007试卷A答案
命题人: 审批人: 试卷分类(A 卷或B 卷) A五邑大学 试 卷学期: 2006 至 2007 学年度 第 2 学期 课程: 程序设计原理 专业: 计算机、电子、交通 班级: 姓名: 学号:30分,1.5*20)1、 C++源程序文件的扩展名为( A )A) .CPP B) .C C) .DLL D) .EXE 2、 下列各组中全是合法的字符串常量的是 ( A )A) "a+b " , "1+2=5" , "china " B) 'abc ' , 'xyz ' , '5' C) '123' , "456" , "789" D) '\n ' , "1+2=3" , "aaa " 3、 如果a=1,b=2,c=3,d=4则条件表达式“a>b?a :b <c?c :d ” 的值为( A ) A. 3 B. 2 C. 1 D. 4 2 4、 关于类型转换的说法中,错误的是(D )A )如果a 为int 型变量,b 为char 型,则a+b 的值为int 型B )如果a 为float 型变量,b 为int 型,则a-b 的值为float 型C )如果a 为double 型变量,b 为float 型,则a*b 的值为double 型D )如果a 为int 型变量,b 为int 型,则a/(double)b 的值为int 型 2 5、 编译程序的功能是( C )A 、将汇编语言程序转换为目标程序B 、将汇编语言程序转换为高级语言程序C 、将高级语言程序转换为目标程序D 、将高级语言程序转换为汇编语言程序6、 逻辑运算符两侧运算对象的数据类型 ( D )A) 只能是0或1 B) 只能是0或非0数 C) 只能是整型或字符型数据 D) 可以是任何类型的数据逻辑运算符即是[ || ! &&]B)else字句与其之前最近的if配对C)else字句与其之后最近的if配对D)else字句与同一行上的if配对8、在函数声明中,下面哪项是没有的()A)函数参数的类型和参数名B)函数名C)函数类型D)函数体9、执行完C++程序中的下列3条语句后,c指向()int a,b,*c=&a; int * p=c; p=&b;A) p B) c C) b D) a10、定义如下一维数组:int a[5],*p=a; 则下面描述中,错误的是()A)表达式p=p+1是合法的B)表达式a=a+1是合法的C)表达式p-a是合法的D)表达式a+2是合法的11、以下对二维数组a的正确说明是( )A) int a[3][ ];B) float a(3, 4);C) double a[1][4];D) int a[10]={10*1};12、以下各项说法中,正确的是()A)当通过引用传递参数时,函数创建一个变量以存储参数的值B)当通过引用传递参数时,函数无法访问参数的值C)当通过引用传递参数时,调用程序创建一个临时变量以容纳参数的值D)当通过引用传递参数时,函数访问调用程序中参数的原始值13、下面不属于C++语言的基本数据类型的是()A)字符类型B)枚举类型C)逻辑类型D)整数类型14、下列关于类与对象的说法中,不正确的是()A)对象是类中的一个实例B)任何一个对象只能属于一个具体的类C)一个类只能有一个对象D)类与对象的关系和数据类型与变量的关系相似15、假定MyClass为一个类,那么下列的函数说明中,()为该类的析构函数。
第二学期《C语言程序设计》课程考试试卷(A)及答案
《C语言程序设计(1)》课程考试试卷(A)及答案开课二级学院:信息、机电、计测、质安,考试时间:2008年6月27日18时、开卷□,允许带入场考生姓名:学号:专业:班级:试题1(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】输入若干个整数,统计奇数的个数和偶数的个数。
运行示例:5 1 2 3 4 5奇数的个数是:3偶数的个数是:2【程序】#include <stdio.h>void main( ){int n,i,on,jn,x;(1) don=0;(2) cfor (i=0; i<n; i++){scanf("%d", &x);if( (3) c )on++;elsejn++;}printf( (4) c );printf("偶数的个数是:%d\n", on);}【供选择的答案】(1) A、scanf("%d", n); B、scanf(%d, &n);C、scanf(%d, n);D、scanf("%d", &n);(2) A、jn==0; B、jn==1;C、jn=0;D、jn=1;(3) A、x%2 B、x/2C、x%2==0D、x/2==0(4) A、"奇数的个数是:%d", jn B、奇数的个数是:%d\n, jnC、"奇数的个数是:%d\n", jnD、 "奇数的总数是:%d\n", jn试题2(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】连续输入十个整数,找出并返回最大值及其下标。
运行示例:10 9 8 7 6 5 4 3 2 1max=10, imax=0【程序】#include <stdio.h>void main( ){int i, max, imax;(5) b cfor (i=1; i<11; i++){scanf("%d", &a[i]);}max=a[1];(6) d bfor(i=2; i<11; i++){if( (7) d ){(8) cimax=i;}}printf("max=%d, imax=%d\n", max, imax);}【供选择的答案】C、int a[11];D、int a(10);(6) A、; B、imax=1;C、imax=10;D、imax=0;(7) A、 max>a[i] B、 max<a{i}C、 max<(a+i)D、 max<a[i](8) A、a[i]=max; B、;C、max=a[i];D、max==a[i];试题3(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
2007A试卷E
浙江大学2006-2007学年夏季学期《程序设计基础及实验》课程期末考试试卷(A)开课学院:计算机学院, 考试形式:闭卷考试时间:2007年7月7日, 所需时间:120 分钟,任课教师考生姓名:学号:专业:(注意:答题内容必须写在答题卷上,写在本试题卷上无效) Section 1: Single Choice(2 marks for each item, total 20 marks)1. According to the declaration: char ch; the assignment expression ______is correct.A.ch=‟\412‟B.ch=255 C.ch=‟\08‟D.ch=‟\‟2. According to the declarations: float x=16/5/2.0, y=16/5.0/2; the values of x and y is ______respectively.A.1.5 1.6 B.1.6 1.6 C.1.5 1.5 D.1.6 1.53. According to the declarations: int a [10], *p=a; the expression *p++ is equivalent to _____.A.a[0]++ B.a[1]++ C.*(p++) D.(*p)++4. In the following initializations/assignments, _____ is correct.A.char s[10]; s=”hello!”;B.int x[2][]={1,2,4,6};C.int x[][3]={1,2,3,4,5,6}; D.char s[10]; s[]=”hello!”;5. In the following statements, _____ will print out “%d” .A.printf(“%d”); B.printf(“%%d”); C.printf(“\%d”); D.printf(“%%%d”)6. The following code fragment prints out _____.int x=1, y=012;printf(“%d”,y*x++);A.12 B.10 C.20 D.247. The following code fragment prints out _____.int a=1,b=2,c=2,t;while(a<b<c) { t=a; a=b; b=t; c--; }printf(“%d,%d,%d”,a,b,c);A.1,2,0 B.2,1,0 C.1,2,1 D.2,1,18. In the following figure, the shading regions of the axis can be described as expression_______.Xa b c《C Programming》TEST PAPER, July 7, 2007 1 / 10A.(x<=a)&&(x>=b)&&(x<=c) B.(x<=a)||(b<=x<=c)C.(x<=a)||(x>=b)&&(x<=c) D.(x<=a)&&(b<=x<=c)9. The following code fragment will print out _______.int x = -3, y = 2;if(x>y);x = -x;if(x<y)y = -y;printf("x=%d,y=%d\n", x, y);A.x=3,y=-2 B.x=3,y=2 C.x=-3,y=2 D.x=-3,y=-210. According to the declaration: int x[5]; _______of the following operations can increase thevalue of the second element of x by 1 (Assume that x[0] is counted as 1st element).A.x[2]++; B.int p=x[1];p++;C.x++; (*x)++; D.int p=x+1; (*p)++;Section 2: Fill in the blanks(2 marks for each item, total 30 marks)1. The value of expression 13&(6<<1) is __12___.2. The following for loop statement will print out: 0 1 2 0 1 2 0 1 2.for( i=1; i<=9; i++ ) printf("%2d", ___(i-1)%3____);3. The value of expression sizeof("%%\\%dxyz") is___9___.4. The following code fragment prints out __23#1B#___.printf("%d# %X#", 027, 27);5. According to the declaration: char s[]={'s', 't', 'r', '0', 'l', 'e', 'n', 0, '=', '\0'}; the value ofexpression strlen(s+1) is __6___.6. The following code fragment prints out __*2*#*3*#___.unsigned char x=255,y=‟\1‟;switch(!!x) {case 0: printf("*0*#");break;case 1:switch(y) {case 0: printf("*1*#");break;case 1: printf("*2*#");break;}default: printf("*3*#");}7. According to the function declarition: void main(int argc, char *argv[]) in the file learn.c,run the command: learn the C programming language, the value of expression *(*(argv+argc-1)+4) is ____u__.8. The following program prints out __3#2#___.#include <stdio.h>《C Programming》TEST PAPER, July 7, 2007 2 / 10void f(int x,int y){int t=x;x=y; y=t;}void main(){int x=3, y=2;f(y, x);printf("%d#%d#", x, y);}9. The following program prints out __6#21#___.# include <stdio.h>int s;int f(int m){static int k=0;for(; k<=m; k++) s++;return s;}void main( ){int s=1;s=f(2)+f(2);printf("%d#%d#", s, f(20));}10. The following program prints out __89___.#include <stdio.h>int f(int n){if (n > 1)return f(n-1)+f(n-2);return 1;}int main(){printf("%d", f(10));return 0;}《C Programming》TEST PAPER, July 7, 2007 3 / 1011. The following program prints out ___15__.#include <stdio.h>#define P(a) a*a+5#define Q(a, b) a*bint main(){printf("%d", P(3)/Q(2, 3));return 0;}12. The following code fragment prints out __1___.char *p=””;printf(“%d”, p==NULL?0:1);13. Use typedef to define a pointer type PA that points to an one-dimension array which contains10 elements of type int ______typedef int *PA[10];________.14. For the following array a, the value of *(a[1]+4) is __8___.int a[][3]={1,2,3,4,5,6,7,8,9};15. For the following definition, the value of s[1].b/++p->a is __2___.struct {int a;int b;} s[2]={2,4,6,8}, *p=s;Section 3: Read each of the following programs and answer questions (5marks for each item, total marks: 30)1. The output of the following program is__a=113#b=72#___.#include <stdio.h>int main(){int a = 57, b = 113;b^=a ^= b ^= a ^= b;printf("a=%d#b=%d#", a, b);return 0;}2. When input: 26734<ENTER>, the output of the following program is __4___.#include <stdio.h>#include <string.h>int main(){char n[1000];《C Programming》TEST PAPER, July 7, 2007 4 / 10int i, tmp1, tmp2;scanf("%s", n);i = 0;tmp1 = 0;while(n[i]!='\0') {tmp1 += n[i] - '0';i++;}while(tmp1>9) {tmp2 = tmp1;tmp1 = 0;while(tmp2!=0) {tmp1 += tmp2%10;tmp2 /= 10;}}printf("%d\n", tmp1);return 0;}3. The output of the following program is __POINT#ENTER#ST#EW#___.#include <stdio.h>char *c[] = {"ENTER", "NEW", "POINT", "FIRST"};char **cp[]= {c+3, c+2, c+1, c};char ***cpp = cp;main(){printf("%s#", **++cpp);printf("%s#", *--*++cpp);printf("%s#", *cpp[-2]+3);printf("%s#", cpp[-1][-1]+1);}4. The output of the following program is __14#12#10#10#8#6#4#2#0#0#___.#include <stdio.h>void f(int A[], int n, int x){int t, i;i=n; A[n+1]=x;while ((i>=0) && (A[i]>A[i+1])) {t=A[i];A[i]=A[i+1];《C Programming》TEST PAPER, July 7, 2007 5 / 10A[i+1]=t;i --;}n++;}int A[10]={0,2,4,6,8,10,12,14,10};void main(){int n=sizeof(A)/sizeof(A[0]);f(A,7,A[8]);f(A,8,A[9]);while (n--)printf(“%d#”,A[n]);}5. The output of the following program is ____zyxwvedcba__.#include <stdio.h>#define NUM 5void p1(char v[]){int i,j,temp;for (i=1; i<NUM; i++)for(j=i-1; j>=0&&v[j]<v[j+1]; j--)temp = v[j], v[j]=v[j+1], v[j+1]=temp;}void p2(char v1[], char v2[]){int i=0, j=0;while (i<NUM && j<NUM)if (v1[i]>v2[j]) putchar(v1[i++]);else putchar(v2[j++]);while (i<NUM) putchar(v1[i++]);while (j<NUM) putchar(v2[j++]);}void main(){char s[2][5]={…v‟,‟d‟,‟x‟,‟c‟,‟b‟,‟e‟,‟a‟,‟y‟,‟z‟,‟w‟};p1(s[0]);p1(s[1]);p2(s[0],s[1]);《C Programming》TEST PAPER, July 7, 2007 6 / 10}6. The text file a.txt contains the following three lines(<ENTER> for the Enter key): Zhejiang University<ENTER>Programming <ENTER>Hello, World!In the following command-line program prog.c, the output of the program after running as “p rog –n a.txt” is __1: Zhejiang University#2:Programming#3:Hello,world!#_____.#include <stdio.h>#include <string.h>void main(int argc, char *argv[]){int flag=0,count=0;FILE *fp;char *file, c;if (argc == 2)file = argv[1];else if (argc == 3 && strcmp(argv[1], “-n”) == 0) {file = argv[2]; flag = 1;} else {printf("Usage: prog [-n] filename\n");exit(-1);}if ((fp=fopen(file, “r”)) == NULL) {printf(“Cannot open file ……%s‟‟\n”, file);exit(-1);}while ((c=fgetc(fp))!=EOF) {if (flag && (count == 0 || c == …\n‟))printf(“%d:”, ++count);putchar (c!=‟\n‟?c:‟#‟);}fclose(fp);}Section 4: According to the specification, complete each program (2 marks for each blank, total: 20 marks)《C Programming》TEST PAPER, July 7, 20077 / 101. Given a simple chain list, which contains a special head node header with no value (This listis null if header->next==NULL). The following program fragment inserts value node to the list, makes its value be greater than that of its previous node,and be less than or be equal to that of its next node. Fill in the blanks.#include <stdio.h>#include <stdlib.h>struct student{int num;struct student *next;};void insert(struct student *header, int value){struct student *tmp, *stud;stud = (struct student *) malloc(sizeof(struct student));_____(1) ____; stud->num=valuetmp = header;while( tmp->next != NULL ) {if(stud->num <= tmp->next->num) {stud->next = tmp->next;_____(2) ____; tmp->next=studreturn;}tmp = tmp->next;}tmp->next = stud;_____(3) ____; stud->next=NULL}2. There is a text file, which contains a number (less than 100) of positive decimal integers (一批不超过100个的十进制正整数). Write a command-line program prog.c to read in these numbers, count the average value of all even numbers(偶数), and find out the number(s) which sum of all digits of each number (各位数字之和) is greater than 10, and store these results above into the other text file. Requirements: take the input and output file names as command-line parameters. If the output file name is omited(省略), the default output will be the standard terminal. Fill in the blanks.For example:The command-line is:prog infile.txt outfile.txt《C Programming》TEST PAPER, July 7, 20078 / 10The input text file infile.txt contains the following numbers:123 234 345 456 567 678 789 890 901 012The result be stored in the output file outfile.txt will contain the followings:454.00345 456 567 678 789 890#include <stdio.h>#define MAX_NUM 100int ds(int num) /*count whether the sum of each digits of num is greater than 10 */{int s = 0;while (num > 0) {___(4) __;num /= 10;}if (s > 10)return(1);return(0);}void main(int argc, char *argv[]){int a[MAX_NUM], n, k, i, sum;FILE *fp_in, *fp_out;float aver;if (argc < 2) {printf(“Usage: prog in_file [out_file]\n”);exit(0);}if (_____(5) ____ ) {printf(“Cannot open input file %s\n”, argv[1]);exit(0);}if (argc > 2) {if ((fp_out=fopen(argv[2], “w”)) == NULL) {printf(“Cannot open output file %s\n”, argv[2]);fp_out = stdout;}} else《C Programming》TEST PAPER, July 7, 20079 / 10_____(6) ____;n = 0;while (!feof(fp_in)) {/*feof() return 1 if end of file has been reached, return 0 otherwise*/ _____(7) ____;n++;}fclose(fp_in);sum = 0; k = 0;for (i = 0; i < n; i++) {if (a[i]%2 == 0) {sum += a[i];k++;}}_______(8) ______;fprintf(fp_out, “%.2f\n”, aver);for (i = 0; i < n; i++)if (ds(a[i]))_______(9) ______;if (_____(10) ____)fclose(fp_out);}《C Programming》TEST PAPER, July 7, 200710 / 10。
编程基础考试题及答案
编程基础考试题及答案一、选择题(每题2分,共10分)1. 以下哪个选项是Python语言中定义函数的关键字?A. classB. functionC. defD. method答案:C2. 在HTML中,用于定义最重要的标题的标签是?A. `<h1>`B. `<h6>`C. `<head>`D. `<body>`答案:A3. 在JavaScript中,以下哪个方法用于将字符串转换为小写?A. toUpperCase()B. toLowerCase()C. toUpperCase()D. toCamelCase()答案:B4. 在C++中,以下哪个是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. `Hello, World!`D. "Hello, World!"答案:A5. 在SQL中,用于查询语句的关键字是?A. SELECTB. INSERTC. UPDATED. DELETE答案:A二、填空题(每题3分,共15分)1. 在Python中,用于创建列表的方括号是________。
答案:[]2. 在HTML中,用于添加换行的标签是________。
答案:<br>3. JavaScript中,用于获取当前时间的函数是________。
答案:new Date()4. 在C++中,用于声明一个整型变量的关键字是________。
答案:int5. 在SQL中,用于插入数据的关键字是________。
答案:INSERT三、简答题(每题5分,共20分)1. 描述Python中的列表和元组的区别。
答案:列表是可变的,可以添加、删除或修改元素;元组是不可变的,一旦创建就不能更改。
2. 解释HTML和CSS的关系。
答案:HTML用于定义网页的结构和内容,而CSS用于设置网页的布局和样式。
C语言编程规范试题(标准答案)
C语⾔编程规范试题(标准答案)C语⾔编程规范试题(标准答案)⼀.单选题(每⼩题3分,共20⼩题60分)1.1-1.5 B D A C B 1.6-1.10 C A D B C1.11-1.15 A D D C B 1.16-1.20 D A B C A⼆.填空题(每空1分,共20空20分)2.1 通常在设计函数的时候,函数之间要低耦合,函数内部要⾼内聚,函数之间调⽤关系要⾼扇⼊、合理扇出。
2.2 为了提⾼代码的效率,通常要求循环体内⼯作量最⼩化,把多重循环中最忙的循环放在最内层。
2.3 代码质量保证优先原则中,最优先保证正确性,然后依次是稳定性、安全性、可测试性、规范/可读性、全局效率、局部效率、个⼈⽅便性。
2.4 代码⾛读主要是对程序的编程风格如注释、命名等以及编程时易出错的内容进⾏检查,可由开发⼈员⾃⼰或开发⼈员交叉的⽅式进⾏;代码审查主要是对程序实现的功能及程序的稳定性、安全性、可靠性等进⾏检查及评审,可通过⾃审、交叉审核或指定部门抽查等⽅式进⾏。
2.5同产品软件(项⽬组)内,最好使⽤相同的编辑器,并使⽤相同的设置选项。
2.6资源⽂件(多语⾔版本⽀持),如果资源是对语⾔敏感的,应让该资源与源代码⽂件脱离,具体⽅法有下⾯⼏种:使⽤单独的资源⽂件、 DLL⽂件或其它单独的描述⽂件(如数据库格式)。
2.7对较关键的算法最好使⽤其它算法来确认。
2.8局部效率应为全局效率服务,不能因为提⾼局部效率⽽对全局效率造成影响。
2.9在同⼀项⽬组或产品组内,要有⼀套统⼀的为集成测试与系统联调准备的调测开关及相应打印函数,并且要有详细的说明。
2.10检查函数所有参数输⼊的有效性,同时还要检查函数所有⾮参数输⼊的有效性,如数据⽂件、公共变量等。
三.编程题(每⼩题20分,共1⼩题20分)3.1 编写函数实现:将整型变成字符串,如3489变成"3489"。
要求不可以使⽤任何C库函数。
函数原型声明如下:char *intTostring(int num, char *result);答题评分标准:1、结果完全正确:15分2、结果完全不正确:0分3、结果部分正确:如未考虑负数的情况,得8分4、结果完全正确或部分正确的情况下,考查编程规范符合情况,加0~5分5、结果完全不正确的情况下,即使编程规范完全符合,亦不可加分。
07级Java语言程序设计试卷(A卷)
22.Font类的构造方法可以有三个参数,第一个参数和第三个参数分别表示__________。
A. 字体和字色B. 字体和字号C. 字号和字型D. 字体和字型
23.把声音文件存到AudioClip类对象的方法是__________。
20.Graphics类中用于填充矩形的方法是__________。
A. draw()B. drawOval() C. drawRect() D. fillRect()
21.灰色是图形的默认背景颜色。要设置图形背景颜色,应使用的方法是__________。
A. getbackGround() B. setBackground()
A. 事件源 B. 容器C. 窗口 D. 事件组件
二、填空题:20%(每空各1分,共20分)
1.Java源程序文件名的后缀是______,Java字节码文件名的后缀是______。
2.Java程序由______组成,每个程序有一个主类,Java程序文件名应与______类的名称相同。
3.根据占用内存长度将浮点常量分为______和______两种。
A. getAudioClip() B. getImage() C. getHeight() D. getWidth()
24.DataInputStream中包括各种类型数据的读方法。其中,读字符型数据的方法是__________。
A. readChar()B. readDouble()
C. readByte()D. readInt()
}
(2) abstract interface Printable{
void print();
07级C I试卷(A)_答案1
一、单项选择题。
(每小题2分,共20分)1、下列合法的变量名是(C )。
(A)8d (B)1_2h (C )_int(D)file.cpp2、有说明语句:int a=0;double x=5.16;,则以下语句中,(C )属于编译错误。
(A)x=a/x;(B)x=x/a;(C)a=a%x;(D)x=x*a;3、设有:int a=7,b=5,c=3,d=1;,则条件表达式a<b?a:c>d?c:d 的值为(C)。
(A)7(B)5(C)3(D)14、执行下列语句后,x的值是(D),y的值是(C)。
int x,y ;x =y =1;++x||++y ;(A)不确定(B)0(C)1(D)25、下列for 语句循环的次数是(B )。
for (int i=0,x=0;!x &&i<=3;i++)(A)3(B)4(C)0(D)无限6、有函数原型void fun(int *);下面选项中,正确的调用是(C )。
_____________________(A)double x=0.12;fun(&x);(B)int a= 1;fun(a*3.14);(C)int b=10;fun(&b);(D)fun(56);7、关于函数定义和调用的说法正确的是(A)。
(A)函数能嵌套调用,但不能嵌套定义(B)函数能嵌套调用,也能嵌套定义(C)函数不能嵌套调用,也不能嵌套定义(D)函数不能嵌套调用,但能嵌套定义8、有定义一维数组语句:int a[5],*p;,则下列表达式错误的是(B)。
(A)p=p+1(B)a=a+1(C)p-a(D)a+29、假定有语句:int b[][3]={{1},{1,2},{1,2,3},{0}};则b[2][2]的值是(D)。
(A)0(B)1(C)2(D)310、若用数组名作为调用函数的实参,则传递给形参的是(A)。
(A)数组存贮首地址(B)数组的第一个元素值(C)数组中全部元素的值(D)数组元素的个数二、简答题。
编程教师考试题及答案
编程教师考试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是Python中定义函数的关键字?A. classB. functionC. defD. method答案:C2. 在HTML中,用于定义最重要的标题的标签是?A. `<h1>`B. `<h6>`C. `<h3>`D. `<h2>`答案:A3. 在JavaScript中,以下哪个方法用于将字符串转换为大写?A. toUpperCase()B. toLowerCase()C. toTitleCase()D. toCamelCase()答案:A4. SQL中的“SELECT * FROM table_name”语句的作用是什么?A. 从指定的表中插入数据B. 从指定的表中删除数据C. 从指定的表中选择所有列的数据D. 更新指定表中的数据5. 在CSS中,以下哪个属性用于设置文本的颜色?A. colorB. textColorC. textColourD. fontColor答案:A6. Java中,哪个关键字用于声明一个类的实例?A. varB. classC. instanceD. new答案:D7. 在C++中,哪个运算符用于按位异或操作?A. ^B. ||C. &&D. &答案:A8. 在Python中,以下哪个是正确的列表推导式?A. [x for x in range(10)]B. (x for x in range(10))C. {x for x in range(10)}D. [x: x in range(10)]答案:A9. 在HTML中,用于插入换行的标签是?B. `<nl>`C. `<new_line>`D. `<line>`答案:A10. 在JavaScript中,以下哪个方法用于获取数组中最后一个元素?A. last()B. pop()C. shift()D. slice(-1)答案:D二、填空题(每题3分,共15分)1. 在Python中,使用____关键字可以定义一个类。
07级Java语言程序设计试卷(A卷)答案
08级《Java程序设计》期末试卷A(答案)一、单项选择题:30%(每题各1分,共30分)二、填空题:20%(每空各1分,共20分)1、java、class2、类、主3、float、double4、4、85、import6、重载7、覆盖、自己的、super8、Object 、equals9、新建、就绪、运行、阻塞、消亡三、判断题:15%(正确的打“√”错误的打“×”每题各1分,共15分)1、(×)2、(√)3、(×)4、(√)5、(×)6、(×)7、(×)8、(×)9、(×) 10、(√) 11、(√) 12、(√) 13、(×) 14、(×) 15、(√)四、简答题:15%(每题5分,共15分)1、接口的定义中,正确的是42、wait():使一个线程处于等待状态,并且释放所持有的对象的lock.sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。
notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。
Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。
3、Meal()Lunch()PortableLunch()Bread()Cheese()Lettuce()Sandwich()五、编程题:20%(每题10分,共20分)1、import java.awt.*;import java.applet.*;import java.awt.event.*;public class TextEventDemo extends Applet implements ActionListener {TextField tf1,tf2;public void init(){tf1=new TextField(10);tf2=new TextField(10);setLayout(new GridLayout(2,1));add(tf1);add(tf2);tf1.addActionListener(this);}public void actionPerformed(ActionEvent e){if (e.getSource()==tf1)tf2.setText(tf1.getText());}}2、客户端程序:import java.io.*;import .*;public class Client1{public static void main(String[] args) throws Exception{Socket s=new Socket("127.0.0.1",4007);BufferedReader in=new BufferedReader(new InputStreamReader(System.in));BufferedReader is=new BufferedReader(new InputStreamReader(s.getInputStream())); PrintWriter pw=new PrintWriter(newBufferedWriter(new OutputStreamWriter(s.getOutputStream()))); System.out.println("please input radius of circle:");String s1=in.readLine();pw.println(s1);pw.flush();s1=is.readLine();System.out.println("The area of circle is :"+s1);in.close(); is.close(); pw.close();}}服务器端程序:import java.io.*;import .*;public class Server1{public static void main(String[] args) throws Exception{ServerSocket ss=new ServerSocket(4007);Socket s=ss.accept();BufferedReader is=new BufferedReader(new InputStreamReader(s.getInputStream()));PrintWriter pw=new PrintWriter(newBufferedWriter(new OutputStreamWriter(s.getOutputStream())));String s1;s1=is.readLine();Double r=Double.parseDouble(s1);Double area=Math.PI*r*r;pw.println(""+area);pw.flush(); is.close(); pw.close();}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一. 判断题(共19题,每题2分,直接在括号内打“√”或“×”)(对)1、不允许把多个短语句写在一行中,即一行只写一条语句。
(对)2、如果编程工具提供将TAB键转换成空格键,对齐、缩进可以使用TAB 键,否则应使用空格键。
(对)3、数据结构声明(包括数组、结构、类、枚举等),如果其命名不是充分自注释的,必须加以注释。
(对)4、i,j,k只可以用作循环变量,不能用于其它局部变量。
(错)5、当一个表达式包含多个运算符时,应该尽量用默认优先级来保证表达式的运算顺序。
(对)6、由于引用了全局变量和静态局部变量的函数不方便重入,因此在实时系统编程中,应尽量减少对全局变量和静态局部变量的使用。
(错)7、应当尽可能设计功能全面、灵活的数据结构,以提高效率。
(错)8、结构中元素的排列不影响结构占用空间的大小。
(错)9、断言可以用来处理程序的任何错误情况。
(错)10、在一般应用的情况下,当前代码,处理一个1000条记录的结果只要2000毫秒。
采用了新的处理机制,处理同样大小的结果只要1999毫秒,这种提高还是有重要意义的。
(对)11、提高代码效率应当保证软件系统的正确性、稳定性、可读性及可测性的前提下进行。
(错)12、内存操作越界可以通过测试发现,设计时不必过分关注.(对)13、对程序进行编译时,必须打开编译器的所有告警开关。
(对)14、用宏定义代替表达式时,要使用完备的括号,保证宏定义的完整性。
(对)15、单元测试开始要跟踪每一条语句,并观察数据流及变量的变化。
不能进行单步跟踪的代码,要采用日志输出等形式,跟踪数据流和变量的变化;(对)16、一个函数仅完成一件功能。
(对)17、对参数输入和非参数输入都要检查有效性。
(错)18、应该设计高扇出、合理扇入的函数。
(错)19、应该为函数功能的扩展预留尽可能多的参数接口。
二、单项选择题(共17题,每题2分)( D )1、下面哪条语句符合编程规范:(A)for (...) {... // program code}(B)if (...){... // program code}(C)void example_fun( void ){... // program code}(D)以上都不对。
( D )2、下面哪种变量定义不当,可能导致堆栈溢出?A、静态全局变量B、动态全局变量C、静态局部变量D、动态局部变量( D )3、在C语言中,若有以下定义:char a; int b;float c; double d;则表达式a*b+d-c值的类型为:A、floatB、intC、charD、double( A )4、关于结构,不正确的说法是:A、结构的功能要尽可能强大B、结构的元素不可以随意排列C、功能太单一的结构会降底代码质量D、结构间的关系不能太复杂( D )5、下面的说法,哪个描述是正确的?A、测试代码只是调测时使用,所以没有必要象正式代码一样给出注释。
B、在软件系统中设置与取消有关测试手段,软件功能行为上可以不一致。
C、调测开关统一使用_UNIT_DEBUG,一般不允许再定义其它新的调测开关。
D、好的测试用例应尽可能模拟出程序所遇到的边界值、各种复杂环境及一些极端情况等。
( A )6、关于程序效率,正确的说法是_____。
A、要减少循环嵌套次数B、提倡用汇编提高效率C、程序效率是最重要的D、最忙的循环放在最外面( A )7、用_____,可提高浮点运算效率。
A、乘法代替除法B、除法代替乘法C、减法代替加法D、除法代替加法( D )8、下列说法中,错误的是:A、switch语句必须有default分支B、系统运行之初,必须初始化有关变量C、必须防止引用已经释放的内存空间D、为了提高代码效率,应尽可能使用嵌入式汇编( B )9、下面哪种情况是规范中所说的差“1”错误A、错误使用“++”B、“>=”错写成“>”C、变量右移时多移了1个BITD、short型变量错误定义为char型而少了一个字节( A )10、关于代码的编辑、编译,下面说法不正确的是A、在产品软件(项目组)中,不需要统一编译开关选项。
B、虽然编辑器提供的块拷贝功能很方便,但还是要小心使用。
C、合理设计软件系统目录,方便开发人员使用。
D、某些语句经编译后产生告警,但如果你认为它是正确的,那么应通过某种手段去掉告警信息。
( B )11、选择出正确的宏定义______。
A、#define INIT_RECT_VALUE( a, b )\a = 0;b = 0;for (index = 0; index < RECT_TOTAL_NUM; index++)INIT_RECT_VALUE( rect.a, rect.b );B、#define INIT_RECT_VALUE( a, b )\{a = 0; b = 0;}for(index = 0; index < RECT_TOTAL_NUM; index++){INIT_RECT_VALUE( rect[index].a, rect[index].b );}C、#define INIT_RECT_VALUE( a, b )\(a = 0;b = 0;)for (index = 0; index < RECT_TOTAL_NUM; index++)INIT_RECT_VALUE( rect.a, rect.b );D、#define INIT_RECT_VALUE( a, b )\a = 0;b = 0;for (index = 0; index < RECT_TOTAL_NUM; index++)(INIT_RECT_VALUE( rect.a, rect.b ));( A )12、单元测试的覆盖率要求至少达到______A、语句覆盖;B、条件覆盖;C、逻辑覆盖;D、分支覆盖;( A )13、关于函数参数,正确的说法是______。
A、不必要的参数应从接口中去掉。
B、应为将来的应用保留充分多的参数。
C、较多的参数可使函数的功能强大,测试、维护容易。
D、将函数的参数作为工作变量,以提高编程和程序执行速度。
( B )14、关于函数实现,不正确的说法是______。
A、明确函数功能,精确(而不是近似)地实现函数设计。
B、为使得函数具有可重入性,应使用static局部变量。
C、编写可重入函数时,若使用全局变量,则应通过关中断、信号量(即P、V操作)等手段对其加以保护。
D、函数的功能应该是可以预测的,也就是只要输入数据相同就应产生同样的输出。
( D )15、关于函数命名,不正确的说法是______。
A、函数名应准确描述函数的功能。
B、使用动宾词组为执行某操作的函数命名。
如果是OOP方法,可以只有动词(名词是对象本身)。
C、避免使用无意义或含义不清的动词为函数命名。
D、函数名称越简单越好。
( D )16、关于函数,不正确的说法是______。
A、除非必要,最好不要把与函数返回值类型不同的变量,以编译系统默认的转换方式或强制的转换方式作为返回值返回。
B、应减少函数本身或函数间的递归调用。
C、函数的规模尽量限制在200行以内。
D、函数中的冗余代码只要不影响函数的效率,不需要删除。
( C )17、代码质量保证优先原则,下面哪个应最优先考虑A、稳定性、安全性,指程序稳定、可靠、安全。
B、全局效率,指软件系统的整体效率。
C、正确性,指程序要实现设计要求的功能。
D、可测试性,指程序要具有良好的可测试性。
三、多项选择题(共14题,每题2分,少答、多答、答错皆不得分)(ABD )1、关于程序注释,哪些描述是正确的?A、修改代码同时修改相应的注释,以保证注释与代码的一致性B、错误的注释不但无益反而有害C、不再有用的注释不能删除D、变量、常量、宏的注释应放在其上方相邻位置或右方(ABD )2、关于程序注释,哪些描述是正确的?A、说明性文件(.h,.def等)的头部应该进行注释B、函数头部应该进行注释C、注释越多越好D、全局变量必须要有注释(ABC )3、为了使程序具有更好的可读性,以下描述正确的:A、用括号明确表达式的操作顺序,避免使用默认优先级;B、避免使用不易理解的数字,用有意义的标识(宏或枚举)来替代;C、源程序中关系较为紧密的代码应尽可能相邻;D、使用技巧性很高的语句;(AB )4、下列定义中正确的是:A、char *a = "abcd";B、char a[] = "abcd";C、char a[4]= "abcd";D、char a[] = 'abcd';(ABC )5、定义如下结构struct TEMP_MSG{int iLen; //总消息长度,从头开始算起short sSerialNo; //序列号char cFlag; //执行标志char cReserved; //保留未使用};对这个结构定义的评价中,正确的是:A、由于数据结构的成员都在字节对齐边界上,因此存取效率良好;B、由于数据结构的成员都在字节对齐边界上,因此节省了占用空间;C、cReserved成员保留,可以为以后版本升级和兼容留有余地;(ABCD )6、在分布式环境或不同CPU间的通讯环境中,下面的描述中正确的是:A、不同字节序的CPU之间的通讯时,必须进行字节序转换;B、字节对齐方式是在编译时决定的,因此应尽量在不同的CPU环境上使用相同的字节对齐方式;C、由于不同编译环境对位域的处理可能有差异,因此应尽量避免使用位域进行通讯;D、由于不同编译环境对枚举值所占有空间的定义有差异,因此应尽量避免使用枚举值进行通讯。
(ABD )7、关于可测性,不正确的说法是______。
A、断言可以用来处理必须处理的错误情况B、调试时打印的出错信息只要有错误码就行了C、项目组内要有一套统一的错误输出函数D、软件的DEBUG版本与发行版本可以分为两套源代码(BCD )8、下列说法哪些是正确的:A、在软件调试过程中构筑软件质量B、充分了解系统接口后,再使用系统提供的功能C、过程/函数中分配的内存,如果不再使用,在过程/函数退出之前要释放D、不能引用已经释放的内存空间, 不能随意改变与其它模块的接口E、以上都不对(ABD )9、关于代码质量保证优先次序,不正确的是:A、可测试性最重要B、效率比可读性重要C、稳定性比可读性重要D、局部效率优先于全局效率(ABD )10、关于代码的编辑、编译和审查,下面说法正确的是:A、使用代码静态检查工具PC_LINT对源程序进行检查。
B、审查代码时,可使用LogiScope工具进行。
C、代码编写时为了节约时间,提高效率,可一鼓作气编写完毕后再做保存和备份处理。