/**********FOUND**********/ for(i=1;i<=20;i++) {
f3=f1+f2;
/**********FOUND**********/ f2=f1;
/**********FOUND**********/ f3=f2;
printf(\ }
printf(\}
void main() { void fun(); fun(); } 答案:
=======(答案1)======= printf(\=========或========= printf(\
=========或========= printf(\
=======(答案2)======= for(i=1;i<20;i++)
=========或========= for(i=1;20>i;i++)
=========或========= for(i=2;i<=20;i++) =========或========= for(i=2;20>=i;i++)
=========或========= for(i=1;i<=19;i++) =========或========= for(i=1;19>=i;i++)
=======(答案3)======= f1=f2;
=======(答案4)======= f2=f3;
━━━━━━━━━━━━━━━━ 五、程序设计 共1题 (共计20分) ━━━━━━━━━━━━━━━━
第1题 (20.0分) 题号:319 /*------------------------------------------------ 【程序设计】
--------------------------------------------------
功能:编写函数判断m是否为素数。在main函数中输出了100到200之间所有的素数。
------------------------------------------------*/
#include \void wwjt();
int fun(int m) {
/**********Program**********/
/********** End **********/ }
void main() { int fun(int m); int m,k=0;
for(m=100;m<200;m++) if(fun(m)) {
printf(\ k++; if(k%5==0) printf(\ }
printf(\ wwjt(); }
void wwjt() {
FILE *IN,*OUT; int iIN,iOUT,i; IN=fopen(\ if(IN==NULL) {
printf(\Verify The Currernt Dir..It May Be Changed\ }
OUT=fopen(\ if(OUT==NULL)
{
printf(\Verify The Current Dir.. It May Be Changed\ }
for(i=0;i<10;i++) {
fscanf(IN,\ iOUT=fun(iIN);
fprintf(OUT,\ } fclose(IN); fclose(OUT); }
答案:---------------------- int i,k=1;
if(m<=1) k=0; for(i=2;i 十三 ━━━━━━━━━━━━━━━ 一、判断 共10题 (共计20分) ━━━━━━━━━━━━━━━ 第1题 (2.0分) 题号:27 char c[]=\Good\是一个合法的为字符串数组赋值的语句。 答案:Y 第2题 (2.0分) 题号:1240 链表中有的结点可以没有指针域. 答案:N 第3题 (2.0分) 题号:1145 链表是结构体最重要的应用,它是一种非固定长度的数据结构,是一种动态存储技术. 答案:Y 第4题 (2.0分) 题号:1138 语句char a[4]=\与char a[]=\等价. 答案:N 第5题 (2.0分) 题号:1102 在C程序中 , 函数既可以嵌套定义 , 也可以嵌套调用 答案:N 第6题 (2.0分) 题号:1235 可以使用变量定义数组的长度. 答案:N 第7题 (2.0分) 题号:1228 continue和break语句都能用于switch语句中. 答案:N 第8题 (2.0分) 题号:1281 在循环控制中,可以用continue语句跳出本次循环. 答案:Y 第9题 (2.0分) 题号:1143 在给变量命名时,C语言不区分大小写字母,即认为SUM和sum是同一个变量. 答案:N 第10题 (2.0分) 题号:1268 逻辑运算的三种运算符&&,||,!优先级相同 答案:N ━━━━━━━━━━━━━━━━━ 二、单项选择 共15题 (共计30分) ━━━━━━━━━━━━━━━━━ 第1题 (2.0分) 题号:200 下面关于指针的叙述,正确的是( ). A:指针和地址是两个性质不同的概念 B:指针是对结构体变量来定义的 C:指针可以指向任何数据类型的变量 D:指针变量可以初始化 答案:D 第2题 (2.0分) 题号:159 执行下面程序段从键盘给变量a,b,c输入值,正确的输入格式为( ). int a,c; char b; scanf(\ A:123,d,45 B:123 d 45 C:123d45 D:a=123b=dc=45 答案:C 第3题 (2.0分) 题号:131 若k为int型变量,则以下程序段的执行结果是()。 k=-8567; printf(\A:格式描述符不合法,输出无定值 B:输出为|D| C:输出为|0-8567| D:输出为|-8567| 答案:B 第4题 (2.0分) 题号:174 C语言程序中,若对函数类型未加显式说明,则函数的隐含说明类型为()。 A:void B:double C:int D:char 答案:C 第5题 (2.0分) 题号:630 逻辑运算符两侧运算对象的数据类型()。 A:只能是0或1 B:只能是0或非0正数 C:只能是整型或字符型数据 D:可以是任何类型的数据 答案:D 第6题 (2.0分) 题号:153 能正确表示数学不等式0≤a≤18的C语言表达式是( ). A:a>=0&a<=18 B:a>=0||a<=18 C:a>=0&&a<=18 D:0≤a&&a≤18 答案:C 第7题 (2.0分) 题号:165 关于多路分支语句switch,下面说法不正确的是( ). A:switch语句不能嵌套 B:switch语句中可以出现多个空的case子句 C:凡是能用switch语句实现的分支控制都可以用if语句实现 D:一般情况下,当有多路分支时使用switch语句比使用if语句方便 答案:A 第8题 (2.0分) 题号:114 下列数据中,为字符串常量的是()。 A:A B:\C:How do you do. D:$abc 答案:B 第9题 (2.0分) 题号:516 char str[10]=\数组元素个数为()。 A:5 B:6 C:9 D:10 答案:D 第10题 (2.0分) 题号:173 C语言执行程序的开始执行点是()。 A:程序中第一条可以执行语言 B:程序中第一个函数 C:程序中的main函数 D:包含文件中的第一个函数 答案:C 第11题 (2.0分) 题号:3563 以下函数的类型是______。 fff(float x) { return 5; } A:与参数x的类型相同 B:void 类型 C:int类型 D:无法确定 答案:C 第12题 (2.0分) 题号:100 以下标识符中,不能作为合法的C用户定义标 识符的是()。 A:putchar B:_double C:_123 D:INT 答案:A 第13题 (2.0分) 题号:577 在C语言中,int、char和short三种类型数据在内存中所占用的字节数()。 A:由用用户自己定义 B:均为2个字节 C:是任意的 D:由所用机器的机器字长决定 答案:D 第14题 (2.0分) 题号:130 在一个完整的C语言程序中,不能缺少的函数是( ). A:scanf() B:getchar() C:fopen() D:main() 答案:D 第15题 (2.0分) 题号:170 关于return语句,下列正确的说法是()。 A:在主函数和其他函数中均可出现 B:必须在每个函数中出现 C:可以在同一个函数中出现多次 D:只能在除主函数之外的函数中出现一次 答案:C ━━━━━━━━━━━━━━━━ 三、程序填空 共1题 (共计15分) ━━━━━━━━━━━━━━━━ 第1题 (15.0分) 题号:8 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:以每行5个数来输出300以内能被7或17整除的偶数,并求出 其和。 -------------------------------------------------------*/ #include int i,n,sum; sum=0; /***********SPACE***********/ 【?】; /***********SPACE***********/ for(i=1; 【?】 ;i++) /***********SPACE***********/ if(【?】) if(i%2==0) { sum=sum+i; n++; printf(\ /***********SPACE***********/ if(【?】) printf(\ } printf(\} 答案: =======(答案1)======= n=0 =======(答案2)======= i<=300 =========或========= i<300 =========或========= 300>=i =========或========= 300>i =======(答案3)======= i%7 == 0 || i == 0 =========或========= !(i%7)||!(i) =========或========= !(i)||!(i%7) =========或========= !(i%7&&i) =======(答案4)======= n%5 == 0 =========或========= !(n%5) =========或========= n/5*5==n ━━━━━━━━━━━━━━━━ 四、程序改错 共1题 (共计15分) ━━━━━━━━━━━━━━━━ 第1题 (15.0分) 题号:415 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:利用递归方法求5!。 ------------------------------------------------------*/ #include int fact(int); printf(\} int fact(int j) { int sum; /**********FOUND**********/ if(j=0) /**********FOUND**********/ sum=0; else sum=j*fact(j-1); /**********FOUND**********/ return j; } 答案: =======(答案1)======= if(j==0) =======(答案2)======= sum=1; =======(答案3)======= return sum; ━━━━━━━━━━━━━━━━ 五、程序设计 共1题 (共计20分) ━━━━━━━━━━━━━━━━ 第1题 (20.0分) 题号:360 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:把20个随机数存入一个数组,然后输出该数组中的 最大值。 ------------------------------------------------*/ #include int vector[VSIZE] ; int fun(int list[],int size) { /**********Program**********/ /********** End **********/ } main() { int i; for (i=0;i vector[i]=rand(); printf(\ } i=fun(vector,VSIZE); printf(\ Vector[%d]=m\\n\ wwjt(); } void wwjt() { int i,t; FILE *fp ; fp = fopen(\ for (i=0;i fprintf(fp,\ } t=fun(vector,VSIZE); fprintf(fp,\Vector[%d]=m\\n\ fclose(fp) ; } 答案:---------------------- int i,max=0; for(i=1; i 十四 ━━━━━━━━━━━━━━━ 一、判断 共10题 (共计20分) ━━━━━━━━━━━━━━━ 第1题 (2.0分) 题号:36 若有 int i=10,j=2;则执行完i*=j+8;后ⅰ的值为28。 答案:N 第2题 (2.0分) 题号:1094 设有数组定义: char array [ ]=\则数组array所占的空间为5. 答案:N 第3题 (2.0分) 题号:28 如果函数值的类型和return语句中表达式的值不一致,则以 函数类型为准。 答案:Y 第4题 (2.0分) 题号:1108 有 如 下 说 明 :int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为9的表达式是 *(P+8). 答案:Y 第5题 (2.0分) 题号:1279 循环结构while、do while、for不可以互相嵌套. 答案:N 第6题 (2.0分) 题号:1262 如有定义:char c[]=\则数组c的长度为8. 答案:Y 第7题 (2.0分) 题号:1280 C语言程序中用到的所有变量必须在使用之前进行定义. 答案:Y 第8题 (2.0分) 题号:1229 函数嵌套就是在定义函数的函数体中调用被定义的函数本身. 答案:N 第9题 (2.0分) 题号:1258 如果函数的类型没有定义,则这个函数的类型是void. 答案:N 第10题 (2.0分) 题号:1255 若定义了一维数组a,则下标为i的元素值可以用*(a+i)或a[i]来计算. 答案:Y ━━━━━━━━━━━━━━━━━ 二、单项选择 共15题 (共计30分) ━━━━━━━━━━━━━━━━━ 第1题 (2.0分) 题号:113 执行下列语句后变量x和y的值是()。 y=10;x=y++; A:x=10,y=10 B:x=11,y=11 C:x=10,y=11 D:x=11,y=10 答案:C 第2题 (2.0分) 题号:167 下列语句中,不正确的是()。 A:char a[2]={1,2}; B:int a[2]={'1','2'}; C:char a[2]={'1','2','3'}; D:char a[2]={'1'}; 答案:C 第3题 (2.0分) 题号:187 经过下列的语句 int j,a[10],*p;定义后,下列语句中合法的是()。 A:p=p+2; B:p=a[5]; C:p=a[2]+2; D:p=&(j+2); 答案:A 第4题 (2.0分) 题号:100 以下标识符中,不能作为合法的C用户定义标识符的是()。 A:putchar B:_double C:_123 D:INT 答案:A 第5题 (2.0分) 题号:663 以下不正确的说法是:C语言规定()。 A:实参可以是常量,变量或表达式 B:形参可以是常量,变量或表达式 C:实参可以为任何类型 D:形参应与其对应的实参类型一致 答案:B 第6题 (2.0分) 题号:139 定义双精度实型变量应使用( ). A:long int B:float C:char D:double 答案:D 第7题 (2.0分) 题号:3130 下列说法中错误的是 A:一个数组只允许存储同种类型的变量 B:如果在对数组进行初始化时,给定的数据元素个数比数组元素个数少时,多余的数组元素会被自动初始化为最后一个给定元素的值 C:数组的名称其实是数组在内存中的首地址 D:当数组名作为参数被传递给某个函数时,原数组中的元素的值可能被修改 答案:B 第8题 (2.0分) 题号:565 以下叙述中正确的是()。 A:C语言的源程序不必通过编译就可以直接运行 B:C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C:C源程序经编译形成的二进制代码可以直接