大学《C语言程序设计》期末考试试卷及参考答案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Baidu Nhomakorabea
大学《C语言程序设计》期末考试试卷及参考答案.txt D、本程序文件的第一个函数开始,到本程序main函数结束 2、能正确表示“当x取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是 A、(x>=1)&&(x<=10)&&(x>=200)&&(x<=210) B、(x>=1)&&(x<=10)||(x>=200)&&(x<=210) C、(x>=1)||(x<=10)||(x>=200)||(x<=210) D、(x>=1)&&(x<=10)||(x>=200)||(x<=210) 3、以下对一维数组正确初始化的语句是 。 A、int a[10]=(0,0,0,0,0); B、int a[10]={}; C、int a[]={0}; D、int a[10]={10*1}; 4、 若int类型数据字长为4,其最大值为 。 A、231 B、231-1 C、232-1 D、232 5、下列各语句中,能够输出整型变量a、b中最大值的是 。 A、printf("%d\n",(a>b)?a,b); B、(a>b)? printf("%d",b):printf("%d",a); C、printf("%d",if(a>b)a else b); D、printf("%d\n",(a>b)?a:b); 6、在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列 顺序为 。 A、char<int=<long int<=float<double B、char=int<long int<float<double C、char<int<long int=float=double D、char<int<long int<=float=double 7、若用数组作为函数调用的实参,传递给形参的是 。 A、数组的首地址 B、数组的第一个元数 C、数组中全部元素的值 D、数组元素的个数 8、算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为 。 A、算术运算、赋值运算、关系运算 B、算术运算、关系运算、赋值运算 C、关系运算、赋值运算、算术运算 D、关系运算、算术运算、赋值运算 9、假如指针p已经指向变量x,则&*p相当于 。 A、 x B、*p C、&x D、**p 10、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是 。 main( ) { int x; scanf("%d",&x); if(x++>5)printf("%d",x); else printf("%d\n",x --); } A、 7和 5 B、 6和 3 C、 7和 4 D、 6和 4 四、程序阅读题(20分,每题4分) 要求:阅读下列程序,将程序运行时的输出结果填写在答案栏内。 1. #include <stdio.h> void main() { char ch; int k=0; for(ch='A';ch<'H';ch++,k++) if(k%2==0) printf("%c ",ch); printf("\n"); } 输出结果: 2、#include <stdio.h> int x; add( ) { int y; x=y=3; } main ( ) { int y; y=x=2; add(); printf("x=%d y=%d\n",x,y); } 输出结果:_______。 3、#include <stdio.h> main() {char a[]=“fprogram”,b[]=”fortran”; char *p,*q; p=a; q=b; while(*p&&*q) {if(*p==*q) printf(“the two string are same:%c\n”,*q); p++; q++; } } 输出结果 第 2 页
第 3 页
5、#include <stdio.h> f(int x,int y) {return(y-x); } main() {int a=5,b=6,c=2; int f(),(*g)()=f; c=(*g)(a,b); printf(“%d\n”,c); } 输出结果 。 五、编程题(30分,每题10分) 1、设计一递归函数实现将任一十进制正整数转换成八进制数。 2、实现如下功能的函数 0 (x<-0.5) y= 1 (-0.5<= x < 1) 10 x>1.0 3、编一程序实现求所有不超过200的N值,N的平方是具有对称性质的回文数。所谓回文数就是将一个数从左向右与从右 向左读是一样的,例如34543和1234321都是回文数。
大学《C语言程序设计》期末考试试卷及参考答案.txt 《C语言程序设计》期末考试试卷参考答案 一、判断题(10分) 1、对2、对3、错4、错5、对 6、错7、错8、错 9、错10、错 二、填空题(30分,,1到10题1分1空,10到18题2分1空) 1.2.5 2. a!=0&&b!=0 3. m=1b 4. windows 95 5. x[i]>='A'&&x[i]<='Z' 6.234567 7.文件的首纪录前 8、struct tree *Ltree,*Rtree 9. i<=100 10. char a[10]="continue"; 11. p*pow(1+r,5) 12. 'D' 13. 10、5 14.#define utol(ch) ch=ch>='A'&& ch<='Z' ? ch+'a'-'A':ch 15.首行第i+1个元素的地址,第i+1行的首地址,a[0][0]的值 16.p=(int*)mallo(n); 17. (-b+sqrt(b*b-4*a*c))/2/a 18. float(*fg)(float **,int,int); 三、单项选择题(在每小题的四个备选答案中选出一个正确的,10分)) 1、 A 2、 B 3、 C 4、 B 5、 D 6、 A 7、 A 8、 B 9、 C 四、程序阅读题(20分,每题4分) 1、 A C E G 2、 x=3 y=2 3、the two string are same:f the two string are same:r 4、 K=8 5、 1 《C语言程序设计》期末考试试卷及参考答案 一、判断题(10分) 1、C语言是一种结构化程序设计语言。() 2、在标准C中,整型变量与字符变量是可以通用的。() 3、在标准C中,“=”是判断两个数是否相等。() 4、在if语句中,else前一个语句可不加“;”。() 5、在C语言中操作系统是以文件为单位对数据进行管理的。() 6、在C语言中,定义结构体变量时可以省略关健字struct。() 7、内存单元的地址与内存单元中的内容是两个相同的内容。() 8、在标准C语言中,在定义带参数的宏时也要定义参数的类型。() 9、在标准C语言中,所有函数在调用之前都要进行声明。() 10、在标准C语言中,数组的下标必须是常量,不允许是表达式。() 二、填空题(30分,,1到10题1分1空,10到18题2分1空) 1. 2. 3. 4. 设float x=2.5,y=4.7; int a=7;,则表达式 x+a%3*(int)(x+y)%2/4 的值为 。 判断变量a、b的值均不为0的逻辑表达式为 。 整型变量m的值为27,语句 printf("m=%x",m);的输出结果为 。 如定义语句为“char a[]="windows ",b[]="95";”, 语句"printf("%s",strcat(a,b));"的输出结果为 。 5. 宏定义语句 #define f(c) c>='A'&&c<='Z' 的引用 f(x[i])置换展开后为 。 6.int i=234,j=567; 函数printf("%d%d\n",i,j) 的输出结果是 7. 文件打开方式为"r+",文件打开后,文件读写位置在 。 8、为了建立如图所示的存储结构(即:每个结点含三个域,data是数据域,Ltree是指向左子树结点的指针域,Rtree是指向 右子树结点的指针域),请填空. struct TREE {char data; Ltree data Rtree ____________; }node; ┏━━┯━━┯━━┓ ┃ │ │ ┃ ┗━━┷━━┷━━┛ 9. 求1至100的和,写作 for(s=0,i=1; ;++i) s+=i; 10. 定义a为长度为10的字符串、同时为字符串赋初值"continue"的语句为 。 11. p为本金,r为1年期存款年利率,计算存款p元5年到期时本金、利息总和(计复利)的算术表达式为 。 12. 若 s='d',执行语句 s=(s>='a'&&s<='z')?s-32:s; 字符变量s的值为 。 13. 函数change定义如下,若a=10、b=5,执行 change(a,b)后a、b的值分别为 。 void change(int a,int b) { int t=0; t=a; a=b; b=t;} 14.定义一个带参数的宏,若变量中的字符为大写字母则转换成小写字母 15.数组声明为“int a[6][6];”,表达式“*a+i”是指 、“*(a+i)”是指 、“**a ”又是指 。 16.动态分配n个int类型数据的存储空间,并将该存储空间的首地址返回给指向int类型数据的指针变量p,写作语句 。 17. 已知方程ax2+bx+c=0系数a、b、c且存在两个实根,计算其中一个实根的算术表达式为 。 18. 声明fg为指向返回值为float类型、形参依次为 float**、int、int类型变量的函数的指针,声明语句为 。 三、单项选择题(在每小题的四个备选答案中选出一个正确的。10分) 1、一个C程序的执行是从 。 A、本程序的main函数开始,到main函数结柬 B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C、本程序的main函数开始,到本程序文件的最后一个函数结束 第 1 页 10、A
。
4、
大学《C语言程序设计》期末考试试卷及参考答案.txt #include <stdio.h> void main( ) { int k=0; char c='A'; do { switch (c++) { case 'A': k++; break; case 'B': k--; case 'C': k+=2; break; case 'D': k=k%2; break; case 'E': k=k*10; break; default: k=k/3; } k++; } while(c<'G'); printf("k=%d\n", k); } 输出结果:
大学《C语言程序设计》期末考试试卷及参考答案.txt D、本程序文件的第一个函数开始,到本程序main函数结束 2、能正确表示“当x取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是 A、(x>=1)&&(x<=10)&&(x>=200)&&(x<=210) B、(x>=1)&&(x<=10)||(x>=200)&&(x<=210) C、(x>=1)||(x<=10)||(x>=200)||(x<=210) D、(x>=1)&&(x<=10)||(x>=200)||(x<=210) 3、以下对一维数组正确初始化的语句是 。 A、int a[10]=(0,0,0,0,0); B、int a[10]={}; C、int a[]={0}; D、int a[10]={10*1}; 4、 若int类型数据字长为4,其最大值为 。 A、231 B、231-1 C、232-1 D、232 5、下列各语句中,能够输出整型变量a、b中最大值的是 。 A、printf("%d\n",(a>b)?a,b); B、(a>b)? printf("%d",b):printf("%d",a); C、printf("%d",if(a>b)a else b); D、printf("%d\n",(a>b)?a:b); 6、在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列 顺序为 。 A、char<int=<long int<=float<double B、char=int<long int<float<double C、char<int<long int=float=double D、char<int<long int<=float=double 7、若用数组作为函数调用的实参,传递给形参的是 。 A、数组的首地址 B、数组的第一个元数 C、数组中全部元素的值 D、数组元素的个数 8、算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为 。 A、算术运算、赋值运算、关系运算 B、算术运算、关系运算、赋值运算 C、关系运算、赋值运算、算术运算 D、关系运算、算术运算、赋值运算 9、假如指针p已经指向变量x,则&*p相当于 。 A、 x B、*p C、&x D、**p 10、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是 。 main( ) { int x; scanf("%d",&x); if(x++>5)printf("%d",x); else printf("%d\n",x --); } A、 7和 5 B、 6和 3 C、 7和 4 D、 6和 4 四、程序阅读题(20分,每题4分) 要求:阅读下列程序,将程序运行时的输出结果填写在答案栏内。 1. #include <stdio.h> void main() { char ch; int k=0; for(ch='A';ch<'H';ch++,k++) if(k%2==0) printf("%c ",ch); printf("\n"); } 输出结果: 2、#include <stdio.h> int x; add( ) { int y; x=y=3; } main ( ) { int y; y=x=2; add(); printf("x=%d y=%d\n",x,y); } 输出结果:_______。 3、#include <stdio.h> main() {char a[]=“fprogram”,b[]=”fortran”; char *p,*q; p=a; q=b; while(*p&&*q) {if(*p==*q) printf(“the two string are same:%c\n”,*q); p++; q++; } } 输出结果 第 2 页
第 3 页
5、#include <stdio.h> f(int x,int y) {return(y-x); } main() {int a=5,b=6,c=2; int f(),(*g)()=f; c=(*g)(a,b); printf(“%d\n”,c); } 输出结果 。 五、编程题(30分,每题10分) 1、设计一递归函数实现将任一十进制正整数转换成八进制数。 2、实现如下功能的函数 0 (x<-0.5) y= 1 (-0.5<= x < 1) 10 x>1.0 3、编一程序实现求所有不超过200的N值,N的平方是具有对称性质的回文数。所谓回文数就是将一个数从左向右与从右 向左读是一样的,例如34543和1234321都是回文数。
大学《C语言程序设计》期末考试试卷及参考答案.txt 《C语言程序设计》期末考试试卷参考答案 一、判断题(10分) 1、对2、对3、错4、错5、对 6、错7、错8、错 9、错10、错 二、填空题(30分,,1到10题1分1空,10到18题2分1空) 1.2.5 2. a!=0&&b!=0 3. m=1b 4. windows 95 5. x[i]>='A'&&x[i]<='Z' 6.234567 7.文件的首纪录前 8、struct tree *Ltree,*Rtree 9. i<=100 10. char a[10]="continue"; 11. p*pow(1+r,5) 12. 'D' 13. 10、5 14.#define utol(ch) ch=ch>='A'&& ch<='Z' ? ch+'a'-'A':ch 15.首行第i+1个元素的地址,第i+1行的首地址,a[0][0]的值 16.p=(int*)mallo(n); 17. (-b+sqrt(b*b-4*a*c))/2/a 18. float(*fg)(float **,int,int); 三、单项选择题(在每小题的四个备选答案中选出一个正确的,10分)) 1、 A 2、 B 3、 C 4、 B 5、 D 6、 A 7、 A 8、 B 9、 C 四、程序阅读题(20分,每题4分) 1、 A C E G 2、 x=3 y=2 3、the two string are same:f the two string are same:r 4、 K=8 5、 1 《C语言程序设计》期末考试试卷及参考答案 一、判断题(10分) 1、C语言是一种结构化程序设计语言。() 2、在标准C中,整型变量与字符变量是可以通用的。() 3、在标准C中,“=”是判断两个数是否相等。() 4、在if语句中,else前一个语句可不加“;”。() 5、在C语言中操作系统是以文件为单位对数据进行管理的。() 6、在C语言中,定义结构体变量时可以省略关健字struct。() 7、内存单元的地址与内存单元中的内容是两个相同的内容。() 8、在标准C语言中,在定义带参数的宏时也要定义参数的类型。() 9、在标准C语言中,所有函数在调用之前都要进行声明。() 10、在标准C语言中,数组的下标必须是常量,不允许是表达式。() 二、填空题(30分,,1到10题1分1空,10到18题2分1空) 1. 2. 3. 4. 设float x=2.5,y=4.7; int a=7;,则表达式 x+a%3*(int)(x+y)%2/4 的值为 。 判断变量a、b的值均不为0的逻辑表达式为 。 整型变量m的值为27,语句 printf("m=%x",m);的输出结果为 。 如定义语句为“char a[]="windows ",b[]="95";”, 语句"printf("%s",strcat(a,b));"的输出结果为 。 5. 宏定义语句 #define f(c) c>='A'&&c<='Z' 的引用 f(x[i])置换展开后为 。 6.int i=234,j=567; 函数printf("%d%d\n",i,j) 的输出结果是 7. 文件打开方式为"r+",文件打开后,文件读写位置在 。 8、为了建立如图所示的存储结构(即:每个结点含三个域,data是数据域,Ltree是指向左子树结点的指针域,Rtree是指向 右子树结点的指针域),请填空. struct TREE {char data; Ltree data Rtree ____________; }node; ┏━━┯━━┯━━┓ ┃ │ │ ┃ ┗━━┷━━┷━━┛ 9. 求1至100的和,写作 for(s=0,i=1; ;++i) s+=i; 10. 定义a为长度为10的字符串、同时为字符串赋初值"continue"的语句为 。 11. p为本金,r为1年期存款年利率,计算存款p元5年到期时本金、利息总和(计复利)的算术表达式为 。 12. 若 s='d',执行语句 s=(s>='a'&&s<='z')?s-32:s; 字符变量s的值为 。 13. 函数change定义如下,若a=10、b=5,执行 change(a,b)后a、b的值分别为 。 void change(int a,int b) { int t=0; t=a; a=b; b=t;} 14.定义一个带参数的宏,若变量中的字符为大写字母则转换成小写字母 15.数组声明为“int a[6][6];”,表达式“*a+i”是指 、“*(a+i)”是指 、“**a ”又是指 。 16.动态分配n个int类型数据的存储空间,并将该存储空间的首地址返回给指向int类型数据的指针变量p,写作语句 。 17. 已知方程ax2+bx+c=0系数a、b、c且存在两个实根,计算其中一个实根的算术表达式为 。 18. 声明fg为指向返回值为float类型、形参依次为 float**、int、int类型变量的函数的指针,声明语句为 。 三、单项选择题(在每小题的四个备选答案中选出一个正确的。10分) 1、一个C程序的执行是从 。 A、本程序的main函数开始,到main函数结柬 B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C、本程序的main函数开始,到本程序文件的最后一个函数结束 第 1 页 10、A
。
4、
大学《C语言程序设计》期末考试试卷及参考答案.txt #include <stdio.h> void main( ) { int k=0; char c='A'; do { switch (c++) { case 'A': k++; break; case 'B': k--; case 'C': k+=2; break; case 'D': k=k%2; break; case 'E': k=k*10; break; default: k=k/3; } k++; } while(c<'G'); printf("k=%d\n", k); } 输出结果: