2022年西安文理学院公共课《C语言》科目期末试卷A(有答案)
2022年西北农林科技大学公共课《C语言》科目期末试卷A(有答案)

2022年西北农林科技大学公共课《C语言》科目期末试卷A(有答案)一、填空题1、设有char a,b;若要通过a&b运算屏蔽掉a中的其他位,只保留第2和第8位(右起为第1位),则b的二进制数是_______。
2、C语言的源程序必须通过【】和【】后,才能被计算机执行。
3、在C语言中,输入操作是由库函数________完成的,输出操作是由库函数________完成的。
4、若有定义语句:ints=6;则表达式s%2+(s+1)%2的值为_______5、若x和n均是int型变量,且x和n的初值均为5,则执行表达式x+=n++后x的值为_______,n的值为_______。
6、下面程序段的运行结果是_______。
Char a[]="123456789",*p;inti=0;p=a;while(*p){if(i%2==0)*p='*';p++;i++;}puts(a);7、下面add函数的功能是求两个参数的和,并将和值返回调用函数。
函数中错误的部分是_______,改正后为_______。
void add(float a,float b){float c;c=a+b;return c;}8、假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。
请填空。
a+=_______;b=a-_______;a-=_______;9、为建立如图10-5所示的存储结构(即每个结点两个域,data是数据域,next是指向结点的指针域),请将定义补充完整。
struct s{char data;_______}node;10、下面程序段的运行结果是_______。
int i=5;char c[6]="abcd";do{c[i]=c[i-1];}while(--i>0);puts(c);二、选择题11、下面4个选项中,是合法转义字符的选项是( )。
2022年咸阳师范学院公共课《C语言》科目期末试卷A(有答案)

2022年咸阳师范学院公共课《C语言》科目期末试卷A(有答案)一、填空题1、请读以下函数:getbits(unsigned x,unsigned p,unsigned n)'{x=((x<<(p+1-n))&((unsigned)~0>>n));return(x);}假设机器的无符号整数字长为16位。
若调用此函数时x=0115032,p=7,n=4,则函数返回值的八进制数是_______。
2、C语言的源程序必须通过【】和【】后,才能被计算机执行。
3、在C语言源程序中,一个变量代表【】。
4、在C语言中,8作为双目运算符时表示的是_______,而作为单目运算符时表示的是_______。
5、假设变量a、b均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为_______。
6、若有以下定义和语句,在程序中可通过指针数组p,用*(p[i]+j)等4种形式引用数组元素s[i][j],另3种形式分别是:_______、_______和_______。
(假设i、j已正确说明并赋值。
)int s[10][6],*p[10];for(i=0;i<10;i++)p[i]=s[i];7、函数swap(arr,n)可对arr数组从第1个元素到第n个元素分别进行两两元素交换。
在运行调用函数中的如下语句后,a[o]和a[1]的值分别为_______,原因是_______。
a[0]=1;a[1]=2;swap(a,2);8、设有以下定义和语句,请在printf语句的_______中填上能够正确输出的变量及相应的格式说明。
union{int n;doublex;}num;num.n=10;num.x=10.5;printf("_______",_______);9、设有一输入函数scanf("%d”,k);它不能使float类型变量k得到正确数值的原因是_______未指明变量k的地址和_______格式控制符与变量类型不匹配。
C语言程序设计模拟试题期末考试卷AB卷(附答案)

《C语言程序设计》模拟试卷A一、单项选择题(每题2分,共20分)1、下列有关C语言的叙述中错误的是()。
A) C语句必须以分号结束B) 任何一个C程序中有且只有一个主函数C) 复合语句在语法上可被看作一条语句D) C程序中对数据的任何操作都可由运算符实现2、以下不能定义为用户标识符的是()。
A) MAIN B) _HJ C) 2ong D) LINE13、以下能正确定义一维数组的是()。
A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”;C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5};4、执行下列程序段后输出的结果是()。
x = 9;while (x > 7){ printf(“*”); x- -; }A) **** B) *** C) ** D) *5、设char str1[10] = “ABCDE”, str2[10] = “xyz”;则执行语句printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果是()。
A) 9 B) 8 C) 5 D) 36、若用数组名作为函数调用的实参,则传递给形参的是()。
A) 数组的首地址B) 数组第一个元素的值C) 数组中全部元素的值 D) 数组元素的个数7、在C程序中,若未在函数定义时说明函数类型,则函数默认的类型为()。
A)void B)double C)int D)char8、下面不能正确进行字符串赋值操作的语句是( )。
A) char s[5]={"ABCD"};B) char s[5]; s="ABCD";C) char *s;s="ABCDEF"; D) char *s="ABCD";9、设有说明int s[5]={1,3,5,7,9}; int *p=s; 则下列表达式中值为3的是 ( )。
2022年西交利物浦大学公共课《C语言》科目期末试卷A(有答案)

2022年西交利物浦大学公共课《C语言》科目期末试卷A(有答案)一、填空题1、请读程序段:int a=-1;a=a|0377;printf("%d,%o\n",a,a);以上程序段的输出结果是_______。
2、在C语言中,输入操作是由库函数________完成的,输出操作是由库函数________完成的。
3、在C语言源程序中,一个变量代表【】。
4、把以下多项式写成只含7次乘法运算,其余皆为加、减运算的C语言表达式为_______。
5x7+3x6-4x5+2x1+x3-6x2+x+105、C语言中的标识符可分为关键字、_______和_______3类。
6、下面程序段的运行结果是_______。
chara[]="12345",*p;int s=0;for(p=a;*p!=\0';p++)s=10*s+*p-'o';printf("%d\n",s);7、函数swap(arr,n)可对arr数组从第1个元素到第n个元素分别进行两两元素交换。
在运行调用函数中的如下语句后,a[o]和a[1]的值分别为_______,原因是_______。
a[0]=1;a[1]=2;swap(a,2);8、设有一输入函数scanf("%d”,k);它不能使float类型变量k得到正确数值的原因是_______未指明变量k的地址和_______格式控制符与变量类型不匹配。
9、为建立如图10-5所示的存储结构(即每个结点两个域,data是数据域,next是指向结点的指针域),请将定义补充完整。
struct s{char data;_______}node;10、若有定义:doublex[3][5];,则x数组中行下标的下限为_______,列下标的上限为_______。
二、选择题11、下面4个选项中,是不合法的用户标识符的选项是( )。
C语言程序设计试卷A

C语言程序设计试卷A期末测试卷1一、选择题(每小题4分,共60分)1.C语言源程序名的后缀是()A).exe B) .C C) .obj D) .cp2.下面不合法的C语言标识符有()A) A3?B B) _4x C) 3xy D) a2+b3.若x和y是double类型,则表达式x=1,y=x+3/2执行后的值为()A) 1 B) 2 C) 2.0 D) 2.54.以下关于long、int和short类型数据占用内存大小的叙述中正确的是A) 均占4个字节 B)根据数据的大小来决定所占内存的字节数C)由用户自己定义 D)由C语言编译系统决定5.若变量均已正确定义并赋值,以下合法的C语言赋值语句是()A)x=y==5; B)x=n%2.5; C)x+n=1; D)x=5=4+1;6.以下选项中,当x为大于1的奇数时,值为0的表达式( )A) x%2==1 B) x/2 C) x%2!=0 D) x%2==07.以下叙述中正确的是( )A)break语句只能用于switch语句体中B) continue语句的作用是:使程序的执行流程跳出包含它的所有循环C) break语句只能用在循环体内和switch语句体内D)在循环体内使用break语句和continue语句的作用相同8.在一个完整的C语言源程序中,必须包含的函数是( )A) main( ) B) scanf( ) C) printf( ) D)getchar( )9.执行下列两个语句后,输出的结果为()char c1=97,c2=98;printf(“%c%d”,c1,c2)A) 97 98 B)a 97 C)97 b D) a 9810.在C语言中,函数返回值的类型最终取决于( )A) 函数定义时在函数首部所说明的函数类型B) return语句中表达式值的类型C) 调用函数时主函数所传递的实参类型D) 函数定义时形参的类型11.关于C语言中的do…while循环,下列说法正确的是()A.必须使用break才能跳出循环B.循环体至少执行一次C.可以使用continue结束循环D.while后的条件满足时跳出循环12.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是()A)函数的实参和其对应的形参共占同一存储单元B)形参只是形式上的存在,不占用具体存储单元C)同名的实参和形参占同一存储单元D)函数的形参和实参分别占用不同的存储单元13.若有定义:int a[2][3];,以下选项中对a数组元素正确引用的是()A. a[2][1]B. a[2][3]C. a[0][3]D. a[1][1]14.以下叙述中正确的是( )A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D)main可作为用户标识符,用以命名任意一个函数作为主函数15.以下为一维整型数组a的正确说明是()A)int a(10); B)int n=10,a[n];C)int n; D)#define SIZE 10;scanf("%d",&n); int a[SIZE];int a[n];二、填空题(每空2分,共20分)1. C语言的语句结束标志是 ____________。
2022年北方民族大学公共课《C语言》科目期末试卷A(有答案)

2022年北方民族大学公共课《C语言》科目期末试卷A(有答案)一、填空题1、请读程序段:int x=1;printf("%d\n",~x);上面程序段的输出结果是_______。
2、C语言源程序的基本单位是________3、在C语言源程序中,一个变量代表【】。
4、在C语言中,用“\”开头的字符序列称为转义字符。
转义字符“\n”的功能是_______;转义字符“\r”的功能是_______。
5、若有定义语句:inte=1,f=4,g=2;float m=10.5,n=4.0,k;,则执行表达式k=(e+f)/g+sqrt((double)n)*1.2/g+m后k的值是_______。
6、以下程序段通过移动指针变量m,给如图9-7所示连续动态存储单元赋值。
请填空。
(假设程序段中的所有变量均已正确说明。
)for(k=0;k<10;k++,m++)scanf("%d",_______);7、下面程序段的运行结果是_______。
x=2;do{printf("*");x--;)while(!x==0);8、设有一输入函数scanf("%d”,k);它不能使float类型变量k得到正确数值的原因是_______未指明变量k的地址和_______格式控制符与变量类型不匹配。
9、执行以下程序时,若从第一列开始输入数据,为使变量a=3、b=7、x=8.5、y=71.82、c1='A'、c2='a',正确的数据输入形式是_______。
#include <stdio.h>int main(){int a,b;float x,y;char cl,c2;scanf("a=%d b=%d",&.a,&.b);scanf("x=%f y=%",8.x,8.y);scanf("c1=%cc2=%c”,8.cl,8.c2);printf("a=%d,b=%d,x=%f,y=%f,cl=%c,c2=%c",a,b,x,y,cl,c2);return0;}10、下面程序段的运行结果是_______。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2022年西安文理学院公共课《C语言》科目期末试卷A(有答案)一、填空题1、设x为无符号整数。
表达式x^(~(~0<<n)<<(p+1-n)))的作用是将x 中从第p位开始的n位求反(1变0,0变1),其他位不变。
请按表达式的求值顺序写出分解步骤,并解释含义。
__________________________________2、在C语言中,输入操作是由库函数________完成的,输出操作是由库函数________完成的。
3、在C语言源程序中,一个变量代表【】。
4、在C语言中,8作为双目运算符时表示的是_______,而作为单目运算符时表示的是_______。
5、若有定义语句:inte=1,f=4,g=2;float m=10.5,n=4.0,k;,则执行表达式k=(e+f)/g+sqrt((double)n)*1.2/g+m后k的值是_______。
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、下面add函数的功能是求两个参数的和,并将和值返回调用函数。
函数中错误的部分是_______,改正后为_______。
void add(float a,float b){float c;c=a+b;return c;}8、假设变量a、b和c均为整型,以下语句借助中间变量t把a、b和c中的值进行交换,即把b中的值给a,把c中的值给b,把a中的值给c。
例如:交换前,a=10、b=20、c=30;交换后,a=20、b=30、c=10。
请填空。
_______;a=b;b=c;_______;9、假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。
请填空。
a+=_______;b=a-_______;a-=_______;10、在C语言中,二维数组元素在内存中的存放顺序是_______。
二、选择题11、若有说明语句:charc='\72';则变量c( )。
A.包含1个字符B.包含2个字符C.包含3个字符D.说明不合法,c的值不确定12、对应以下各代数式中,若变量a和x均为double类型,则不正确的C语言表达式是( )13、以下不符合C语法的赋值语句是()。
A.m=(2+1,m=1);B.m=n=0;C.m=1,n=2D.n++;14、以下能正确地定义整型变量a,b和c并为其赋初值5的语句是()。
A.int a=b=c=5;B.int a,b,c=5;C.a=5,b=5,c=5;D.a=b=c=5;15、若有说明:inta[10];,则对a数组元素的正确引用是()。
A.a[10]B.a[3.5]C.a(5)D.a[10-10]16、一个C语言程序由( )。
A.一个主程序和若干子程序组成B.函数组成C.若干过程组成D.若干子程序组成17、以下描述中正确的是( )A.while、do-while、for循环中的循环体语句都至少被执行一次B.do-while循环中,while(表达式)后面的分号可以省略C.while循环体中,一定要有能使while后面表达式的值变为“假”的操作D.do-while 循环中,根据情况可以省略 while18、在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是()A.externB.registerC.autoD.static19、已有函数max(a,B.,为了让函数指针变量p指向函数max,正确的赋值方法是()A.p=max;B.*p=max;C.p=max(a,B.;D.*p=max(a,B.;20、执行下列程序后编译将出现错误,错误是()。
#include <stdio.h>int main(){char a,b,c,*d;a=\V;b='\xbe';c=\0xab";d="\0127";printf("%c%c%c%c\n",a,b,c,*D.;return(0);}A.只有a=\';语句不正确B.b='\xbc';语句不正确C.d="\0127";语句不正确D.a='\V;和c=\0xab";语句都不正确21、以下是有关汉诺塔问题的程序段,若在main函数中有调用语句hanoi(3,'A',B’,C.;则符合程序段运行结果的选项是()。
void move(char getone,char putone){printf("%c——>%c\n",getone,putone);void hanoi(int n,char one,char two,char three){if(n==1)move(one,three);else{hanoi(n-1,one,three,two);move(one,three);hanoi(n-1,two,one,three);}}A)A-->C B)A-->C C)A-->C D)A-->CA-->B A-->B A-->B A-->BC-->B C-->A C-->B C-->BB-->A A-->B A-->C A-->CC-->B B-->C B-->A A—->BA-->C A-->C B-->C B-->CA-->B A-->B A-->C A-->C22、下面程序段的运行结果是()。
int a[6][6],i,j;for(i=1;i<6;i++)for(j=1:j<6;j++)a[i][j]=(i/j)*(j/i);for(i=1;i<6;i++){for(j=1;j<6;j++)printf("%2d",a[i][j]);printf("\n")}A)11111 B)00001 C)10000 D)10001 11111 00010 01000 01010 11111 00100 00100 00100 11111 01000 00010 0101011111 10000 00001 1000123、下面程序段的运行结果是()。
charc[5]={'a',b',\o','c','\o');printf("%s",C.;A.'a''b'B.abC.ab口cD.ab口(其中口表示1个空格)24、当a=1、b=3、c=5、d=4时,执行以下程序段后x的值是()。
if(a<B.if(c<D.x=l;elseif(a<C.if(b<D.x=2;else x=3;else x=6;else x=7;A.1B.2C.3D.625、下面程序的功能是把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、已有定义float d1=3.5,d2=-3.5;执行以下语句后的输出结果是_______。
printf("*d(1)=%e*d(2)=%.4e*d(3)=%10.4e*\n",dl,dl,d1);printf("*d(4)=%e*d(5)=%.6e*d(6)=%-12.5e*\n",d2,d2,d2);27、以下程序的输出结果是_______。
#include <stdio.h>int main(){int x=1,y=2;printf("x=%dy=%d*sum*=%d\n",x,y,x+y);printf("10 Squared is:%d\n",10*10);return 0;}28、若a、b、c均已正确定义且a=0、b=2、c=3,则以下程序段的输出是_______。
switch(a){case 0:switch(b==2){case 1:printf("&”);break;case 2:printf("%”);break;}case 1:switch(c){case 1:printf("S");case 2:printf(”*”);break;default:printf("#”);}}29、以下程序的运行结果是_______。
#include<stdio.h>int main(){intx,y,z;x=3;y=z=4;printf("%d,",(x>=y>=x)?1:0);printf("%d\n",z>=y&&y>=x);return 0;}30、下面程序的功能是从3个红球、5个白球、6个黑球中任意取出8个球,且其中必须有白球,输出所有可能的方案。
请填空。
#include<stdio.h>int main(){inti,j,k;printf("\n hong bai hei\n");for(i=0;i<=3;i++)for(_______;j<=5;j++){k=8-i-j;if(_______)printf("%3d%3d%3d\n",i,j,k);}return 0;}31、以下search函数的功能是利用顺序查找法从数组a的10个元素中对关键字m进行查找。