c语言程序设计期末考试A卷.docx
X X X X X义学院20X X20X X学年第1学期 XX专业一C语言程序设计_课程期末考试试题题号*四五八总分应得分一.单项选择题(每题2分,共30分)1 .关于C语言程序,说法错误的选项是()。A、C语言程序由函数构成B、任何C程序都从main函数开始执行C、C语言程序必须经过编译链接之后才能被计算机执行D、C语言是解释型语言2 . printf ( "%dn",sizeof (char);该语句的输出是()A、4 B、2 C、1D、83 .以下哪一个表达式的值为4 ( )oA、11/3 B、11.0/3 C、(float) 11/3 D、(int) (11.0/3+0. 5)4 .能正确表达逻辑关系:或aWO的C语言表达式是()。A、a>=10 or a<=0C、a>=10&&a<=0a>=0|a<=10D、a>=10|a<=05 .以下程序的输出结果是()。#include <stdio.h> int main()(int n=4;while (n) printf(n);return 0;)D、2106.现有二维数组 该是()oA、 20B、 31C、 321C、allC、allC、allint a3 4,那么要正确引用如下位置的元素,正确的表示应D、a22.有如下定义,那么以下符号中均正确代表x的地址的选项是()o int x, *p;p=&x;A、&x, p, &*xB> *&, x, pC> &p, xD、&x, &*p, p.有基本类型相同的指针变量pl, p2,那么以下运算不合理的是()0A> pl+p2B、 p2-plC> pl=p2D> pl=p27 .假设定义了 int a10, i=3, *p=&a5,下面不能表示为a数组元素的是()A、 p-5B、 ai+5C、 *p+ D、 ai-5.关于数组,以下说法正确的选项是()A、定义数组时,可以不指定其长度B、char str口二“abcde”;该数组的长度是5C、一个数组可以存放不同类型的数据D、char str =“abcde” ;那么 strlen (str)的值为 5.假设有定义 int a=7; float x=2. 5, y=4. 7;那么表达式 x+a%3* (int) (x+y)%2/4 的 值是( )oA、2. 500000 B、2.750000 C、3.500000 D、0.00000012、关于变量的存储类型,以下说法错误的选项是()A、register类型变量存储在内存中B、static变量的生命周期为整个程序运行期间C、静态局部变量如果不赋初始值,那么默认为0D、局部变量在当前函数结束后会被系统回收13、定义以下结构体类型: struct s int a; char b; float f;);那么语句 printf ( "%dn",sizeof (struct s)的输出结果为()。A、7B、8C、10D、1214、以下字符数组str的定义和赋值不正确的选项是()A、char str10;str= "china” ;B> char str = "china" );C> char str10;strcpy(str, "china" );D> char str 10 = "abcdefghi” ;15、以下不能表示二维数组第i行j列位置元素值的是()0A、ai j B、*(ai+j) C、*(*(a+i)+j) D、&ai j二、填空题(每空1分,共5分)1、一个C程序包括 个主函数和 子函数。2、函数的参数传递分为 和 o3、如果某个数组中的每一个元素都是指针,这种结构叫做 o三.判断题(每空1分,共10分)1、数组定义 char s5 = “abc” ;和 char s5 = 'a' , 'b' , 'c' ;是等价的。()2、函数可以嵌套调用,也可以嵌套定义。()3、if语句中的表达式不可以是数值。()4、自定义函数时,函数的形参可以为空。()5、调用函数的实参类型和个数可以和形参不一致。()6、数组名表示该数组首个元素的地址,其值不可以被改变。()7、递归是一种程序设计方法,表现为函数的自调用。()8、指向数组的指针就是指针数组。()9、指针变量的大小(占用的字节数)跟指针变量的类型有关。()10、C语言中,一个字符型数据可以和整形数据相互赋值。()四.程序填空题(每空2. 5分,共35分)1、以下函数使用冒泡法对一个长度为n 的数组进行从小到大排序,请补全程序 中的4处空白。void sort(int a,int n)(四.程序填空题(每空2. 5分,共35分)1、以下函数使用冒泡法对一个长度为n 的数组进行从小到大排序,请补全程序 中的4处空白。void sort(int a,int n)(1、以下函数使用冒泡法对一个长度为n 的数组进行从小到大排序,请补全程序 中的4处空白。void sort(int a,int n)(1、以下函数使用冒泡法对一个长度为n 的数组进行从小到大排序,请补全程序 中的4处空白。void sort(int a,int n)(intfor(i=0;i<n-l;i+)for(j=0;j<n-i-l;j+)if( )2、以下函数能够判断一个字符串是不是 回文串,如果是回文串,那么返回1,不是 那么返回Ooint fun_hw(char s)int n,i,j;n= 求字符串的长度for(i=OJ=n-l(if(si!=sU))if()return 1;elsereturn 0;3、以下函数能够实现交换两个变量的 值,请补全程序中的空白。void swap(int *x,int *y)(int t;)int main()(int a,b;scanfC%d %d,&a,&b);swap( ):)4、以下程序能够使用指针对一维数组进 行赋值和遍历输出,请补全代码。#include <stdio.h>main()(int a6,i,*pa;pa=a;for(i=0;i<6;i+) *pa = i;pa+;;for(i=0;i<6;i+) printf("dn”,*pa); ;)五、程序输出题(每题5分,共10分)1、写出以下程序的输出结果:#include <stdio.h>int main()(int i=0,s=0;for (;i<9;i+) (if(i=3|i=5) continue;if(i=6) break;i+; s+=i;)printf("dn”,s);)程序的输出结果是:1、写出以下程序的输出结果:#include <stdio.h>int main()(int i=0,s=0;for (;i<9;i+) (if(i=3|i=5) continue;if(i=6) break;i+; s+=i;)printf("dn”,s);)程序的输出结果是:2、写出以下程序的输出结果:#include <stdio.h>int fun(int x,int y,int *cp,int *dp) (*cp=x+y;*dp=x-y;)int main()int a,b,c,d;a=30;b=50;fun(a,b,&c,&d);printf(u%d,%dn9c,d);return 0;)程序的输出结果是:六、程序设计题(共1题,共10分)1、试计算在区间1到n的所有整数中,数字x (0<x<9)共出现了多少次?例如, 在1到11中,即在1,2,3,4,5,6,7,8,9,10,11,数字1出现了 4次。请写出完整的代 码。例如:输入:11 L那么输出:4