2022年中南大学公共课《C语言》科目期末试卷A(有答案)

合集下载

2022年C语言程序设计期末考试复习题及答案

2022年C语言程序设计期末考试复习题及答案

C语言考试期末考试复习题及答案一、选择题(1) 一种C语言程序总是从(C )开始执行A) 书写顺序旳第一种函数B) 书写顺序旳第一条执行语句C) 主函数main()D) 不拟定(2) 设int x=3,y=4,z=5,则下列体现式中旳值为0旳是 ( D )A) ‘x’&&’y’B) x||y+z&&y-z C) x<=yD) !((x<y)&&!z||1)(3) 执行如下程序段后,i旳值是 ( C )int i=10;switch(i+1){ case 10: i++; break;case 11: ++i;case 12: ++i; break;default : i=i+1;}A) 11 B) 13 C) 12 D) 14(4) 语句while(!e);中旳条件!e等价于 ( A )A) e==0 B)e!=1 C) e!=0 D) 运营时出错(5) 用 int a[4]={1,2}; 对数组进行初始化后,数组元素a[3]旳值是 ( B )A) 随机值B) 0 C) 1 D) F(6) 在执行char str[10]=“china\0”; strlen(str)旳成果是 ( A )A)5 B) 6 D) 7 D 9(7) 若有定义,char *p=”computer”; 则语句printf(“%c”,*(p+2))运营成果是 ( B )A) 随机值B) m C)o D) omputer(8) 在如下函数调用语句中fun1(x,10,(x,10),fun2(y,10,(y,10)));函数fun1参数旳个数为 ( B )A) 8 B) 4C) 5 D) 编译出错(9) 在阐明一种构造体变量时系统分派给它旳存储空间是( D )A)该构造体中第一种成员变量所需存储空间 B) 该构造体中最后一种成员变量所需存储空间C)该构造体中占用最大存储空间旳成员变量所需存储空间D) 该构造体中所有成员变量所需存储空间旳总和1. 用C语言编写旳代码程序( B )A)可立即执行 B)是一种源程序 C)通过编译即可执行 D)通过编译解释才干执行2. C语言中用于构造化程序设计旳三种基本构造是( A )A)顺序构造、选择构造、循环构造 B)if、switch、break C)for、while、do-while D)if、for、continue3. 如下定义语句中对旳旳是( C )A)char a='A'b='B'; float a=b=10.0;C)int a=10,*b=&a; D)float *a,b=&a;4.下列选项中,不能用作标记符旳是( D )A)_1234_ B)_1_2 C) int_2_ D)2_int_5.在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则( B )A)称为函数旳直接递归调用 B)称为函数旳间接递归调用C)称为函数旳循环调用 D)C语言中不容许这样旳递归调用6.如下论述中对旳旳是 ( A )A)局部变量阐明为static存储类,其生存期将得到延长B)全局变量阐明为static存储类,其作用域将被扩大C)任何存储类旳变量在未赋初值时,其值都是不拟定旳D)形参可以使用旳存储类阐明符与局部变量完全相似7.若变量已对旳定义,规定程序段完毕求5!旳计算,不能完毕此操作旳程序段是( B)A)for(i=1,p=1;i<=5;i++) p*=i;B)for(i=1;i<=5;i++){ p=1; p*=i;}C)i=1;p=1;while(i<=5){p*=i; i++;}D)i=1;p=1;do{p*=i; i++; }while(i<=5);8.有如下程序(a)main(){ char a='a',b;printf("%c,",++a);printf("%c\n",b=a++);}程序运营后旳输出成果是a)b,b B)b,c C)a,b D)a,c9.有如下函数定义:(c)void fun(int n, double x) { …… }若如下选项中旳变量都已对旳定义并赋值,则对函数fun旳对旳调用语句是A) fun(int y,double m); B)k=fun(10,12.5) C)fun(x,n); D)void fun(n,x)10.已定义c为字符型变量,则下列语句中对旳旳是(c)A)c='97'; B)c="97"; C)c=97; D)c="a";11.如下能对旳定义一维数组旳选项是(b)A)int num[]; B) #define N 100 C)int num[0..100]; D) int N=100;int num[N]; int num[N];12.如下能对旳定义数组并对旳赋初值旳语句是(d)A)int N=5,b[N][N]; B)int a[1][2]={{1},{3}};C)int c[2][]= {{1,2},{3,4}}; D)int d[3][2]={{1,2},{34}};13.有如下程序(a)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)01 D)12014.有如下程序(d)main(){ int p[7]={11,13,14,15,16,17,18}, i=0,k=0;while(i<7 && p[i]%2) { k =k+ p[i]; i++; }printf("%d\n", k);}执行后输出成果是A)58 B)56 C)45 D)2415.如下论述中对旳旳是(c)A)C语言比其她语言高档 B)C语言可以不用编译就能被计算机辨认执行C)C语言以接近英语国家旳自然语言和数学语言作为语言旳体现形式D)C语言浮现旳最晚,具有其她语言旳一切长处16.下列论述中对旳旳是(d)A)C语言中既有逻辑类型也有集合类型B)C语言中没有逻辑类型但有集合类型C)C语言中有逻辑类型但没有集合类型D)C语言中既没有逻辑类型也没有集合类型17.如下论述中对旳旳是(a)A)C程序中注释部分可以出目前程序中任意合适旳地方B)花括号"{"和"}"只能作为函数体旳定界符C)构成C程序旳基本单位是函数,所有函数名都可以由顾客命名D)分号是C语句之间旳分隔符,不是语句旳一部分二)阅读程序,写出程序运营成果(1) #include<stdio.h>main(){ char ch=’A’;ch=(ch>=’A’&& ch<=’Z’)?(ch+32):ch;printf(“%c”,ch);}程序旳运营成果是:(2) #include<stdio.h>main( ){ int sum=0,i=11;while (i<=10){sum=sum+i;i++;}printf(“%d”,sum);}程序旳运营成果是:(3) #include<stdio.h>main(){ char str[ ]=”1a2b3c”;int i;for(i=0;str[i]!=’\0’;i++)if (str[i]>=’0’ && str[i]<=’9’) printf(“%c”,str[i]); }程序旳运营成果是:(4) main(){ int a,b;a=5;b=8;p(a,b);p(a+b,a);}p(int x,int y){y=x+y;printf(“%d %d”,x,y);}程序旳运营成果是:(5) #include<stdio.h>void main(){ int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};int j,s=1;for(j=0;j<=2;j++)s=s*a[j][j];printf("%d",s);}程序旳运营成果是:Key: (1) a (2) 0 (3) 123 (4) 5 13 13 18 (5) 45 三)改错题(每个程序只有一种错误,填入错误语句所在旳行号以及修改后旳语句)(1)下段程序旳功能是先输入一种整数,然后将输入旳整数输出。

C语言考试复习试题及参考答案

C语言考试复习试题及参考答案

中南大学现代远程教育课程考试复习试题及参考答案C语言程序设计一、单项选择题若以下各题所有库函数都可以合法使用,且变量定义如下:int m=5, i=3,j=2,*p, a=8,b=0;int arr[10]={0,1,2,3,4,5,6,7,8,9},td[ ][3]={1,2,3,4,5,6};float x=2.5,y=3.0;double z=0; long n=1;char c=’A’,ch[20]={’a’,’b’,’c’,’\0’,’d’,’\0’};struct student{ int num;char name[20];float score;struct student *next;}st1,st2,*ps;FILE *fp;1.若将3和10从键盘输入给变量a、x,输入语句为scanf(“a=%d,x=%f”,&a,&x);正确的键盘输入是(↙表回车):A a=3,x=10↙B 3,10↙C 3 10↙D 3,10.0↙2. 以下不是死循环的语句是:A for ( ;;y+=i++);B while(a) y+=i++ ;C do{ y+=i++}while (a>0);D for (b=0;(c=getchar()!=’\n’);)b++;3.若p=arr;正确的语句是:A *p=arr[10];B *p=arr[2*a];C p=arr[5];D p[i]=arr[0];4.若ps=&st1;则下面描述正确的是:A ps->num与st1->num等价。

B ps.num与st1.num等价。

C ps->num与num等价。

D ps->num与st1.num等价。

5.语句printf(“%d",a<i>j);的输出结果是:A 1B 0C 8 D都不对6.表达式 j/i+a%i+x 的值是:A 6B 4.5C 6.0D 5.57.表达式 b||a+i&&i<j 的值是:A 不确定B 0.0C 1D 08.若执行语句 a=b+=3*j+(int)x;则b的值为:A 1B 8C 0D 8.59. 若执行语句 a=b>j ?++i : i++;则a与i的值分别为:C x=D x=1a≥b 1 a<b11.将字符串“Wan Ming”输入数组ch中,正确的是:A、scanf(“%s”,ch)B、scanf(“%s”,&ch)C、ch=“Wan Ming”D、gets(ch)12. 执行语句printf(“%c”,td[1][0]+’A’)的结果是:A、AB、BC、DD、E13.下列关于main()函数说法正确的是A、C语言程序总是从main()开始执行B、C语言程序可以没有main()函数C、C语言程序可以包含多个main()函数,但必须在不同的模块中D、C语言程序中main()函数不能有形式参数14.下列关于函数说法正确的是A、C语言程序的函数内还可定义其他的函数B、C语言程序的函数内不可再定义其他的函数C、C语言程序的函数不能自己调用自己D、C语言程序中只有同一源文件中的函数才能有调用与被调用关系15.若#define squ(x) x*x 执行语句printf(“result=%d”,squ(i+j));结果为:A、result=36B、36C、result=11D、1116. 若#define squ(x) (x)*(x) 执行语句printf(“result=%d”,squ(i+j));结果为:A、result=36B、result=17C、result=11D、result=25 17.C语言对宏命令叙述正确的是A、宏替换占用运行时间B、编译程序对宏命令的处理是在对源程序中其它成分编译之前进行的C、宏命令的处理是在程序执行时进行的D、宏命令的处理是在程序连接时进行的18. 若执行语句a- =a+=a*=10;a的值为:A、0B、-10C、-100D、100 19.若执行语句p=arr; printf(“%d”,*(p+i));输出结果为A、0B、2C、3D、120.若执行printf(“%s”,ch);结果为:A、’abc’B、abcC、abcdD、abc\0d21.若对数组进行初始化:charcarr[ ]={’s’,’t’,’u’,’d’,’e’,’n’,’t’},barr[ ]=”student ”;则正确的是A、carr与barr长度相同B、carr比barr长C、carr与barr相同D、carr比barr短22.若有说明语句int (*p)[N];则p是A、N个指向整型变量的指针B、可指向有N个整型元素的一维数组的指针C、指向N个整型变量的函数指针D、有N个指针元素的一维指针数组23.若有说明语句int *f( );则函数f是A、f是一个指向整型变量的数组指针B、f返回一个整型数据C、f是一个指向整型变量的函数指针D、f 返回一个整型指针,指向函数本身24.若函数f定义如下:void f(char *d, char *s){ while ( *d++=*s++);}函数f的功能是:A、串比较B、串复制C、求串长D、串反向25.表达式100+a+’a’+x*z的值的数据类型为A、intB、floatC、doubleD、char26.若要动态申请一个double型内存单元,正确的语句是A、pd=double malloc(sizeof(double))B、pd=( *double)malloc(sizeof(double))C、pd=double * malloc(sizeof(double))D、pd=(double*)malloc(sizeof(double))27.若要从键盘上输入67892到变量n中,正确的语句是A、scanf(“%lf”,&n);B、scanf(“%ld ”,&n);C、scanf(“%lf ”,n);D、scanf(“%d ”,&n); 28.判断字符变量c是否不为小写英文字母的正确表达式是A、’a’<=c <=’z’B、c>= ‘a’ && c<=’z’C、’a’≤c ≤’z’D、c<’a’ || c>’z’ 29.下列每组表达式被执行后,结果完全等价的是A、!(b= =0)与!(!b )B、b=(a=4,4*5) 与 b=a=4,4*5C、float(i/j) 与 float i/jD、0<x<100 与 x>0 && x<10030.表达式(m&1)==(m%2)的值是A、 0B、无法确定C、 1D、以上都不对31.数学式ln2x+asin(60°)的C语言表达式是A、log(2*x)+a*sin(60)B、ln(2*x) +a*sin(60/180*3.14)C、ln(2*x) +a*sin(60)D、log(2*x)+a*sin(3.14*60/180)32. 要打开一个已经存在的非空文件file用于修改,则正确的语句是A、fopen(“file”,”r+”)B、fopen(“file”,”w”)C、fopen(“file”,”a+”)D、fopen(“file”,”r”)33. 若打开文件时发生错误,则fopen()函数的返回值是A、1B、0C、不确定D、没有返回值34. 调用函数fseek(fp,-25L,2),其操作结果是A、文件位置指针从文件开始处前移25字节B、文件位置指针从文件结尾处后移25字节C、文件位置指针从文件当前位置处前移25字节D、文件位置指针从文件当前位置处后移25字节35. 能正确表示a和b同时为正或同时为负的逻辑表达式是A、(a>=0||b>=0)&&(a<0||b<0)B、(a>=0&&b>=0)&&(a<0&&b<0)C、(a*b>0&&(a*b<=0)D、a*b>036. 若x=y=z=1;表达式(x--||++y)&&(z++)执行后,x,y,z的值分别为:A. 0,1,1B. 0,1,2C. 0,2,1D. 0,2,237.下列变量的初始化,不正确的是:A. int x,y=5;B. float x=y=3.5;C. char s[]=”a”;D. int a[][3]={{1},{},{0,9}};38. 可以代替while(x!=0)中的条件x!=0的是:A. xB. !xC. x==1D. x!=139.有关函数参数,下列说法不正确的是:A. 实参和形参是不同的变量;B. 实参可以将数据传给形参;C. 形参可以将数据传给实参;D. 实参和形参必须个数相等,类型一致。

2022年延边大学公共课《C语言》科目期末试卷A(有答案)

2022年延边大学公共课《C语言》科目期末试卷A(有答案)

2022年延边大学公共课《C语言》科目期末试卷A(有答案)一、填空题1、请读程序段:int a=-1;a=a|0377;printf("%d,%o\n",a,a);以上程序段的输出结果是_______。

2、在C语言中,输入操作是由库函数________完成的,输出操作是由库函数________完成的。

3、结构化程序由________、________ 、________ 3种基本结构组成。

4、在C语言中,用关键字_______定义单精度实型变量,用关键字_______定义双精度实型变量,用关键字_______定义字符型变量。

5、假设变量a、b均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为_______。

6、当运行以下程序时,从键盘输入book<回车>book囗<回车>(囗表示空格),则下面程序段的运行结果是_______。

char al[80],a2[80],*sl=al,*s2=a2;gets(s1);gets(s2);if(!strcmp(sl,s2))printf("x");else printf("#");printf("%d",strlen(strcat(sl,s2))}7、执行下面程序段后,k的值是_______。

k=1;n=263;do{k*=n%10;n/=10;} while(n);8、设有以下定义和语句,请在printf语句的_______中填上能够正确输出的变量及相应的格式说明。

union{int n;doublex;}num;num.n=10;num.x=10.5;printf("_______",_______);9、设有如下结构体说明:struct ST{int a;float b;struct ST*c;doublex[3];}st1;请填空,完成以下对数组s的定义,使其每个元素均为上述结构体类型。

2022年齐鲁工业大学公共课《C语言》科目期末试卷B(有答案)

2022年齐鲁工业大学公共课《C语言》科目期末试卷B(有答案)

2022年齐鲁工业大学公共课《C语言》科目期末试卷B(有答案)一、填空题1、若有以下定义和语句,为使变量c1得到字符’A',变量c2得到字符’B’,正确的输入形式是_______。

char cl,c2;scanf("%4c%4c",&cl,8&c2);2、C语言源程序文件的后缀是;经过编译后,生成文件的后缀是;经过连接后,生成文件的后缀是3、在C语言源程序中,一个变量代表【】。

4、把以下多项式写成只含7次乘法运算,其余皆为加、减运算的C语言表达式为_______。

5x7+3x6-4x5+2x1+x3-6x2+x+105、C语言中的标识符可分为关键字、_______和_______3类。

6、设x是一个整数(16bit),若要通过xly使x低8位置1,高8位不变,则y的八进制数是_______。

7、下面程序段中循环体的执行次数是_______。

a=10;b=0;do{b+=2;a-=2+b;}while(a>=0);8、设有以下宏定义:#define WIDTH 80#define LENGTH WIDTH+40则执行赋值语句:v=LENGTH*20;(v为int型变量)后,v的值是_______。

9、若有定义floata[3][5];则a数组所含数组元素个数是_______,a数组所占的字节数是_______。

10、以下程序的运行结果是_______。

#include <stdio.h>int main(){char s[]="ab\'cdefg\",*p=s+1;printf("%c”,*(p++));printf("%s",p+2);return(0);}二、选择题11、已知字母A的ASCII码为十进制数65,且定义c2为字符型变量,则执行语句c2='A'+'6'-'3';后,c2中的值为( )。

中南大学2021年《C语言程序设计》期末考试试题及答案

中南大学2021年《C语言程序设计》期末考试试题及答案

一、判断题(每小题1分,共15分)1.标准C中,只有数值型数据才能进行4则混合运算。

2.标准C中,_a是合法的自定义标识符。

3.有定义:float f;表达式f+=(int)3.6%2”不符合C语言语法。

4.标准C中,逻辑运算的结果只有是1表示满足条件,而结果是0表示不满足条件。

5.C语言程序中要求被调用函数在调用函数中能被调用必须要在调用函数中进行声明。

6.以下运算符排列顺序满足按照优先级从高到低的排列:‘&&’、‘!’、‘==’、‘-’。

7.语句for(;;);是非法的。

8.在C语言程序中可以由多个源文件构成,每个源文件都可以有自己的main()函数。

9.while和do-while的主要区别是后者至少无条件执行一次。

10.数组名代表数组的首地址是常量,所以将实参数组名表示地址传给形参数组名是错误的。

11.当函数没有返回值类型时,表示函数类型为void。

12.C语言中,指针变量作函数参数时,它们不是采取单向值传递的方式。

13.一个函数中只允许有一条return语句。

14.在C语言中,如果没有说明变量的存储类型是auto类型的。

15.由于指针中所存放的地址都是整数,所以整型指针和浮点型指针可以相互赋值。

二、填空题(每空1分,共15分)1.若a=4;b=5,c=6;则表达式c==(b=-a); 中c的值是(1)。

2.计算表达式的值:4&&-4的值:(2);设int a=3,b=4,c=5,则表达式a||b+c&&b==c的值:(3);设x=2.5, a=7, y=4.7,则表达式x+a%3*(int)(x+y)%2/4的值:(4);设a=12,则表达式a*=a/5的值:(5);3.若int x = 4,y = 6,z = 0;有循环while(x = y) {z ++;y--;}则循环语句执行完后,z值为(6)。

4.变量的指针就是指该变量的(7)。

5.若有定义int (*p)[4],则标识符p是(8);若有定义int *p[4],则标识符p是(9);6.已有定义:char *p[ ]={“France”,“Chinese”,“Russia”,“America”};则语句printf(“%s”,p[2]);printf(“%c”,*(p[1]+2));printf(“%c”,*(*(p+1)+1));的输出结果分别为:(10)、(11)、(12)。

2022年中南大学公共课《C语言》科目期末试卷B(有答案)

2022年中南大学公共课《C语言》科目期末试卷B(有答案)

2022年中南大学公共课《C语言》科目期末试卷B(有答案)一、填空题1、设有以下定义和语句,请在printf语句的_______中填上能够正确输出的变量及相应的格式说明。

union{int n;doublex;}num;num.n=10;num.x=10.5;printf("_______",_______);2、C语言的源程序必须通过【】和【】后,才能被计算机执行。

3、一个C语言源程序由若干函数组成,其中至少应含有一个________4、若有定义语句:int m=5,y=2;则执行表达式y+=y-=m*=y后的y值是_______5、C语言中的标识符可分为关键字、_______和_______3类。

6、请读程序段:int a=-1;a=a|0377;printf("%d,%o\n",a,a);以上程序段的输出结果是_______。

7、执行下面程序段后,k的值是_______。

k=1;n=263;do{k*=n%10;n/=10;} while(n);8、假设M为已经声明的符号常量,则定义一个具有M×M个元素的双精度型数组a,且所有元素初值为0的形式是_______。

9、下面程序段将输出computer。

请填空。

char c[]="It is a computer";for(i=0;_______;i++){_______;printf("%c",c[j]);}10、函数process是一个可对两个整型数a和b进行计算的通用函数;函数max()可求这两个数中的较大者,函数min()可求它们中的较小者。

已有调用语句process(a,b,max);和process(a,b,min);。

请填空。

void process(_______){int result;result=(*fun)(x,y);printf("%d\n",result);}二、选择题11、设有说明语句:int k=7,x=12;则以下能使值为3的表达式是( )。

2022年合肥学院公共课《C语言》科目期末试卷B(有答案)

2022年合肥学院公共课《C语言》科目期末试卷B(有答案)

2022年合肥学院公共课《C语言》科目期末试卷B(有答案)一、填空题1、假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。

请填空。

a+=_______;b=a-_______;a-=_______;2、在C语言源程序中,一个变量代表【】。

3、一个C语言源程序由若干函数组成,其中至少应含有一个________4、若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式.pow (y,fabs(x))的值为_______5、若x和a均是int型变量,则执行表达式(1)后的x值为_______,执行表达式(2)后的x值为_______。

(1)x=(a=4,6*2)(2)x=a=4,6*26、设x为无符号整数。

表达式x^(~(~0<<n)<<(p+1-n)))的作用是将x中从第p位开始的n位求反(1变0,0变1),其他位不变。

请按表达式的求值顺序写出分解步骤,并解释含义。

__________________________________7、下面程序段中循环体的执行次数是_______。

a=10;b=0;do{b+=2;a-=2+b;}while(a>=0);8、下面程序段将输出computer。

请填空。

char c[]="It is a computer";for(i=0;_______;i++){_______;printf("%c",c[j]);}9、下面程序段的运行结果是_______。

int i=5;char c[6]="abcd";do{c[i]=c[i-1];}while(--i>0);puts(c);10、设main函数的说明为:int main(int argc,char*argv[]),且有命令行为:FILE1123<回车>,则argc的值是_______,argv[1]的值是_______。

2022年五邑大学公共课《C语言》科目期末试卷B(有答案)

2022年五邑大学公共课《C语言》科目期末试卷B(有答案)

2022年五邑大学公共课《C语言》科目期末试卷B(有答案)一、填空题1、已有定义int a;float b,x;char cl,c2;为使a=3、b=6.5、x=12.6、cl='a'、c2='A',正确的scanf函数调用语句是_______,数据输入的形式应为_______。

2、结构化程序由________、________ 、________ 3种基本结构组成。

3、C语言源程序文件的后缀是;经过编译后,生成文件的后缀是;经过连接后,生成文件的后缀是4、若有定义语句:charc='\010';则变量c中包含的字符个数为_______。

5、C语言中的标识符只能由3种字符组成,它们是_______、_______和_______6、在C语言中,&运算符作为单目运算符时表示的是_______运算;作为双目运算符时表示的是_______运算。

7、函数swap(arr,n)可对arr数组从第1个元素到第n个元素分别进行两两元素交换。

在运行调用函数中的如下语句后,a[o]和a[1]的值分别为_______,原因是_______。

a[0]=1;a[1]=2;swap(a,2);8、下面程序段的运行结果是_______。

int i=5;char c[6]="abcd";do{c[i]=c[i-1];}while(--i>0);puts(c);9、下面程序段的运行结果是_______。

char ch[]="600";int a,s=0;for(a=0;ch[a]>= '0'&&ch[a]<='9';a++)s=10*s+ch[a]-'o';printf("%d",s);10、以下程序段通过指针变量q,但不移动q,将如图所示连续动态存储单元的值,从第一个元素起依次输出到终端屏幕。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2022年中南大学公共课《C语言》科目期末试卷A(有答案)一、填空题1、设x=10100011,若要通过x*y使x的高4位取反,低4位不变,则y的二进制数是_______。

2、在C语言中,输入操作是由库函数________完成的,输出操作是由库函数________完成的。

3、一个C语言源程序由若干函数组成,其中至少应含有一个________4、在C语言中,8作为双目运算符时表示的是_______,而作为单目运算符时表示的是_______。

5、已知字母a的ASCIl码为十进制数97,且设ch为字符型变量,则表达式ch='a'+'8'-3'的值为_______。

6、已有一维数组a,n为元素的个数,且各元素均有值;函数void process(float*p,int n,float(*fun)(float*,int))为一个可完成下面各种计算的通用函数。

请分别写出用于以下计算的各函数中的调用语句_______、_______和_______。

(1)float arr_add(float*arr,int n)计算数组元素值之和。

(2)float odd_add(float*p,int n)计算下标为奇数的元素之和。

(3)float arr_ave(float*p,int n)计算各元素的平均值。

7、下面程序段中循环体的执行次数是_______。

a=10;b=0;do{b+=2;a-=2+b;}while(a>=0);8、设有如下结构体说明:struct ST{int a;float b;struct ST*c;doublex[3];}st1;请填空,完成以下对数组s的定义,使其每个元素均为上述结构体类型。

_______9、设有一输入函数scanf("%d”,k);它不能使float类型变量k得到正确数值的原因是_______未指明变量k的地址和_______格式控制符与变量类型不匹配。

10、设有宏定义如下:#define MIN(x,y)(x)>(y)?(x):(y)#define T(x,y,r)x*r*y/4则执行以下语句后,s1的值为_______,s2的值为_______。

int a=1,b=3,c=5,s1,s2;s1=MIN(a=b,b-a);s2=T(a++,a*++b,a+b+c);二、选择题11、下面4个选项中,是C语言关键字的选项是( )。

A.autoB. switchC. signedD. ifEnum typedef union structinclude continue scanf type12、下面4个选项中,是不合法的浮点数的选项是( )。

A.160.B.123C.-18D.-e313、设有以下程序:#include<stdio.h>int main(){int a=201,b=012;printf("%2d,%2d\n",a,B.;return 0;.}程序执行后的输出结果是()。

A.01,12B.201,10C.01,10D.20,0114、已有定义intx;floaty;且执行scanf("%3d%f”,&x,&y);语句,若从第一列开始输入数据12345口678<回车>,则 y的值为( )。

(注:口表示空格)A.无定值B.45.000000C.678.000000D.123.00000015、以下各组选项中,均能正确定义二维实型数组a的选项是()。

A)float a[3][4]; B)float a(3,4);float a[ ][4]; float a[3][4];float a[3][]={{1},{0}}; float a[] []={{0};{0}};C)floata[3][4]; D)float a[3][4];static float a[ ][4]={{0},{0}}; float a[3][];auto float a[ ][4]={{0},{0},{0}}; float a[ ] [4];16、以下叙述不正确的是( )A.一个C源程序可由一个或多个函数组成B.一个C源程序必须包含一个main函数C.C程序的基本组成单位是函数D.在C程序中,注释说明只能位于一条语句的后面17、下面有关for循环的正确描述是()。

A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break 语句跳出循环体D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来18、若用数组名作为函数调用的实参,则传递给形参的是()A.数组的首地址B.数组第一个元素的值C.数组中全部元素的值D.数组元素的个数19、若有说明:char*language[]={"FORTRAN","BASIC","PASCAL",JAVA","C");则language[2]的值是()。

A.一个字符B.一个地址C.一个字符串D.一个不定值20、语句int(*ptr)();的含义是()A.ptr是指向一维数组的指针变量B.ptr是指向int型数据的指针变量C.ptr是指向函数的指针,该函数返回一个int型数据D.ptr是一个函数名,该函数的返回值是指向int型数据的指针21、折半查找法的思路是:先确定待查元素的范围,将其分成两半,然后测试位于中间点元素的值。

如果该待查元素的值大于中间点元素,就缩小待查范围,只测试中点之后的元素;反之,测试中点之前的元素,测试方法同前。

函数binary的作用是应用折半查找法从存有10个有序整数的a数组中对关键字m进行查找,若找到,返回其下标值;反之,返回-1。

请选择填空。

int binary(int a[10],int m){int low=0,high=9,mid;while(low<=high){mid=(low+high)/2;if(m<a[mid])high=mid-1;else if(m>a[mid])【】;else return(miD.;return(一1);}A.high=mid-1B.low=mid+1C.high=mid+1D.low=mid-122、下面程序的运行结果是()。

#include<stdio.h>int main(){char ch[7]={"12ab56"}; int i,s=0;for(i=0;ch[i]>= '0'&&ch[i]<='9';i+=2)s=10*s+ch[i]-'o';printf("%d\n",s);return0;}A.1B.1256C.12ab56D.1523、下面程序的运行结果是()。

#include <stdio.h>int main(){char str[]="SSSWLIA",c;int k;for(k=2;(c=str[k])!=\o';k++){switch(C.{case'I':++k;break;case'L':continue;default:putchar(C.;continue;putchar('*’);}return 0;}A.SSW*B.SW*C.SW*AD.SW24、以下程序的输出是( )。

#include<stdio.h>int main(){int a=100,x=10,y=20,okl=5,ok2=0;if(x<y)if(y!=10)if(!ok1)a=1;elseif(ok2)a=10;a=-1;printf("%d\n",A.;return 0;}A.1B.0C.-1D.值不确定25、下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空( )。

#include <stdio.h>int main(){int i=0,j,k;do{i++;k=316-13*i;}while(【】);j=k/11;printf("316=13*%d+11*%d",i,j);return0;}A.k/11B.k%11C.k/11==0D.k/11=0三、读程序填空26、已知字母A的ASCII码值为65。

以下程序的输出结果是_______。

#include<stdio.h>int main(){char a,b;a='A'+'4'-'3';b='A'+'6'-2';printf("a=%d,b=%c\n",a,b);return0;}27、以下程序的运行结果是_______。

#include<stdio.h>int main(){int n=100;char c;float f=10.0;double x;x=f*=n/=(c=48);printf("%d%d%3.1f%3.1f\n",n,c,f,x);return 0;}28、将以下两条if语句合并成一条if语句为_______。

语句1:if(a>b)scanf("%d",8&a);else scanf("%d",&b);语句2:if(a<=b)m++;else n++;29、以下程序的功能是:某邮局对邮寄包裹有如下规定,若包裹的长、宽、高任一尺寸超过1m或重量超过30kg,不予邮寄;对可以邮寄的包裹每件收手续费0.2元,再加上根据表4-5按不同重量weigh计算的邮资。

请填空。

重量与邮资# include<stdio.h>int main(){ float len, weigh, hei, wid, mon,r;scanf("%f %f %f %f",&len,&wid,&hei,&weigh);if(len>1|| wid>1|| hei>1 || weigh>30)___________;else if (weigh<10) r=0.8;else if (weigh<=20) r=0.75;else if (weigh<=30) ___________;if (r==-1) printf("error\n");else{___________;printf("%f",mon);}return 0;}30、下面程序段的运行结果是_______。

相关文档
最新文档