巢湖学院高等学历继续教育试卷模板.doc
巢湖学院高等学历继续教育 20 —20 学年度第 学期 学院 级 专业 《 》期末考试试卷 命题人 题号 一 二 统分人 三 四 五 题号 总分 题号 线 订 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 (B) 函数和过程 1.C 程 序 是 由 一 个 活 多 个 函 数 组 成 , 是 否 先 定 义 main 函 数 无 关 紧 要 。 (C) 超文本过程 (D) 子程序 ( 2.在 C 语言中,下列类型属于基本类型的是 ) 2. 在 C 语 言 程 序 中 , 变 量 A_C 与 a_c 是 两 个 不 同 的 变 量 。 (A) 整型、实型、字符型 (B) 空类型、枚举型 ( ) (C) 结构体类型、实型 (D) 数组类型、实型 3. 已 ( ) 知 int x=97; 语 句 printf("%c",x) 是 合 法 的 。 3.下列标识符正确的是 (A) x+y123 语 句 char ch='\n'; 是 非 法 的 。 (B) 123_student (C) a123 (D) U.S.A 4.下列程序运行的结果是 void main() ) ( 装 4 1.C 程序的基本构成单位是 5. 结 构 化 程 序 语 言 的 三 种 基 本 控 制 结 构 是 顺 序 、 选 择 和 分 支 。 学号 3 (A) 函数 ( { int k=17; printf("%d,%o,%x\n",k,k,k); } ) 6. 已 知 char a[ ]="AB", b[ ]={ 'A ','B'}; 则 数 组 a 和 b 的 长 度 相 等 。 (A) 17,021,0x11 (B) 17,21,11 ( 5.能正确表示 x 的取值范围在[0,100]和[-10,-5]内的表达式是 ) 7. 表 达 式 ( 姓名 2 答案 一、判断题(在每小题后的括号内用‘√’或‘×’标注对错,每题 1 分, 共 10 分) 。 得分 4. 班级 1 答案 得分 考场(教室) 考试时间 阅卷人 二、单选题(将每小题唯一的正确选项 A、B、C 或 D 写在下表 相应题号下面的空格内,每题 2 分,共 40 分) 。 得分 10+'a'+567.345/'b' 的 计 算 结 果 是 int 型 数 据 。 (C) 17,0x11,021 (D) 17,17,17 (A) (x<=-10)||(x>=-5)&&(x<=0)||(x>=100) (B) (x>=-10)&&(x<=-5)&&(x>=0)&&(x<=100) ) 8.若有语句 int a[5][6], (﹡p)[6]; p=a;则 a[i][j]与﹡(﹡(p+i)+j)等价。 ( ) (C) (x<=-10)||(x>=-5)&&(x<=0)||(x>=100) 9. typedef struct ex{int x;int y;} example; 则 example 不 是 变 量 名 。 (D) (x>=-10)&&(x<=-5)||(x>=0)&&(x<=100) ( 6.有定义 int a=9;语句 a+=a– =a+a;执行后,变量 a 的值是 ) 10. 用 fopen("d:jjb.doc","w+") 打 开 文 件 时 , 若 jjb 文 件 不 存 在 , 则 创 建 该 文 件 (A) 18 ( 7.若变量已被正确定义,下列哪个表达式表示“变量 x 和 y 都能被 3 整除” ) (B) –18 (C) 9 (A) (x%3 != 0) || (y%3 != 0) 第1页 共 14 页 (D) –9 (B) (x%3 == 0) && (y%3 == 0) 第2页 共 14 页 (C) (D) break 语句 (x%3 == 9.判断下面的循环体执行多少次 0) || i=0; k=10; while (i=10) i=k++; (y%3 == (A) 无数次 (B) 8 次 0) 10.程序中调用了库函数 strcmp,必须包含头文件 (D) (A) stdio.h (C) 2 次 (B) math.h (C) string.h (D) 10 次 (D) ctype.h (x%3 != 0) && (y%3 != 0) 8.C 语言 的循环 语 句 for,whil e 和 do-while 中,用于 直接中 断最内 层循环 的语句 是 (A) if 语 句 (B) swich 语 句 (C) continue 语句 第3页 共 14 页 第4页 共 14 页 线 考场(教室) 11.下面字符串处理表达式中能用来把字符串 str2 连接到字符串 str1 后的是 16.设有说明 int (﹡ptr)[M];其中 ptr 是 (A) strcat(str1,str2) ; (B) strcat(str2,str1); (A) M 个指向整型变量的指针 (C) strcpy(str1,str2) ; (D) strcmp(str1,str2); (B) 指向 M 个整型变量的函数指针 12.程序段 char s[ ]="abc\0d"; printf("%s",s);的运行结果为输出 (C) 一个指向具有 M 个整型元素的一维数组的指针 (A) abc\0 (B) abc (D) 具有 M 个指针元素的一维指针数组,每个元素都只能指向整型量 (C) abcd (D) ab\0cd 13.请读程序: int G(int x) #include { #include static int main() x+=k--; { return x; char ﹡Str_1="AbCdEf",﹡Str_2="aBcDeF"; } Str_1++; Str_2++; (A) 3 printf("%d\n",strcmp(Str_1,Str_2)); 订 装 考试时间 } 上面程序的输出结果是 学号 17.函数 G 如下,表达式 G(G(G(3) ) )的值是 (B) 4 (B) -1 (C) 0 (D) 不确定的数 void main() { (D) 0 int a[ ]={1,2,3,4,5,6},﹡p =a; ﹡(p+3)+=2; 14.以下关于 C 语言程序中函数的说法正确的是 printf("%d,%d\n",﹡p,﹡(p+3)); } (A) 函数的定义可以嵌套,但函数的调用不可以嵌套; (A) 1,3 (B) 3,6 (B) 函数的定义不可以嵌套,但函数的调用可以嵌套; (C) 1,4 (D) 1,6 (C) 函数的定义和调用均不可以嵌套; 19.有如下定义,则对结构体变量 person 的出生年份进行赋值时,下面正确的赋 (D) 函数的定义和调用都可以嵌套。 值语句是 15.下面程序的运行结果是 struct date{ int struct worklist { PS 1+2 #include 姓名 (C) 2 18.如下程序的执行结果是 (A) 1 #define 班级 k=0; year; int char name[20]; char sex; struct void main( ) (A) year=1958; { int (C) person. year=1958; z; month; int day; }; date birthday; }person; (B) birthday.year=1958; (D) person.birthday.year=1958; z=PS﹡2; 20.已知有语句 FILE ﹡fp; int x = 123; fp = fopen("out.dat", "w");如果需要将变量 x printf("%d",z); 的值以文本形式保存到磁盘文件 out.dat 中,则以下函数调用正确的是 } (A) 12 (C) 5 (B) 2 (D) 24 第5页 共 14 页 (A) fprintf("%d", x); (C) fprintf(fp, "%d", x); (B) fprintf("%d", x, fp); (D) fprintf("out.dat", x); 第6页 共 14 页 班级 姓名 订 装 学号 考试时间 线 考场(教室) 得分 三、程序分析题(写出程序的运行结果,每小题 5 分,共 25 分) 。 1.void main( ) //如果所采用的输入方式为:x,y,z;u,v↙ { char ch[ ]="abcde"; //则运行结果为: scanf("%c,%c,%c,%c,%c", &ch[0],&ch[1],&ch[2],&ch[3],&ch[4]); printf("%s\n", ch); } 2.void main() //运行时键盘输入 3 { int x,y=0; //运行结果为: scanf("%d",&x); switch(x++) { case 1: y+=1; printf("%d$ ",y);break; case 3: y+=3; printf("%d$ ",y); case 5: y+=5; printf("%d$ ",y);break; default: y+=7; printf("%d$ ",y); } printf("!\n"); } 3.void main ( ) { int i,j,sum=0,x[ ][4] = {1,2,3,4,5,6,7,8,9,10,11,12}; for(i=0; i<3 ; i++) //运行结果为: { for (j=0; j<4 ;j ++ ) if(!(i-j)) sum +=x[i][j] ; printf ("\nsum=%3d ",sum ) ; } } 4.void ast(int x, int y, int ﹡cp, int ﹡dp) //运行结果为: { ﹡cp=x/y;﹡dp=x%y; x=﹡cp+﹡dp;y=﹡cp-﹡dp; } void main( ) { int x=5,y=2,c=8,d=4; ast(x,y,&c,&d); printf("%d,%d,%d,%d\n",x,y,c,d); } 第7页 共 14 页 5.struct worker //运行结果为: { int Worker_ID; char Sex; float Salary; }work[2]={1213001,'M',4000.0}; void main( ) { struct worker ﹡ptr=work; ﹡(ptr+1)=﹡ptr; ptr++; ptr->Worker_ID++; ptr->Sex='W'; ptr->Salary= (ptr-1)->Salary+1000; printf("%d,%c,%.1f$\n", ptr->Worker_ID, ptr->Sex, ptr->Salary); } 得分 四、程序填空题(按照程序功能,将空格处的正确内容填写在空 格的横线上;每空 2 分,共 10 分) 。 1.以下程序的功能是寻找水仙花数(所谓水仙花数是指 1 个 3 位正整数,其各位 数字的立方和等于该数本身,例如:407=43+03+73) ,请完成该程序。 void main( ) { int a,b,c,m,i; for(i=100;i<1000;++i) { a=i/100; b= ; c=i%10;//填空(1) m=a﹡a﹡a+b﹡b﹡b+c﹡c﹡c; if( ) printf("%d,",i);//填空(2) } } 2.完成以下程序实现:从键盘输入一年份数据,判断此年份是否为闰年(判断闰 年的条件是:能被 400 整除,或能被 4 整除但不能被 100 整除)。 void main() { int year,yes; scanf("%d",& year); if(year%400= =0) yes=1; else if( ) yes =1;//填空(3) else //填空(4) if( ) printf("This year is a leap year");//填空(5) if(year = =0) printf("This year is not a leap year"); } 第8页 共 14 页 五、编程题(15 分,从下列两题中选做一题,两题都做的取最高分, 答案必须注明题号)。 得分 1. 编写程序实现:在主函数 main 函数中,键盘输入自变量 x 的值,调用函数 F 计 考场(教室) 算应变量 y 的值,然后显示在屏幕上。x 与 y 的对应关系如下。 订 (x<0)(求平方根函数为 sqrt(float ,x)) 2x2+3x+10 (0 x<100) x3 (x 100) 函数 F 原型可选用下列之一,也可以自己设计原型: float F ( float x); void F ( float x, float *y ); 特别提示:不用函数调用实现功能的最多得 10 分; 2.编写程序实现:在主函数 main 函数中给某一数组输入若干个非 0 实数,调用函 数 Find_Max 找出该数组中所有输入元素的最大值并屏显(最大值可以在 main 函 数中屏显,也可以在 Find_Max 函数中屏显)。Find_Max 函数原型可选用下列之一, 也可以自己设计原型: float Find_Max ( float *a, int n ); float Find_Max ( float a[ ], int n ); void Find_Max ( float *a, int n, float *max ); void Find_Max ( float a[ ],int n, float *max ); 装 特别提示:不用函数调用实现功能的最多得 10 分; 班级 姓名 学号 考试时间 线 y= x x 第9页 共 14 页 第 10 页 共 14 页 装 订 线 考场(教室) 考试时间 学号 姓名 班级 第 11 页 共 14 页 第 12 页 共 14 页 第 13 页 共 14 页 第 14 页 共 14 页