C语言试卷(B卷)(带答案)
C语言程序设计模拟试题B(附答案)
《C语言程序设计》模拟试卷十二一、填空题.(每题2分,共20分)1.C语句必须以号结束2.若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是。
3.若有以下程序段,int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是.4.设有定义:int n,*k=&n;以下语句将利用指针变量k读写变量n中的内容,请将语句补充完整。
scanf(“%d, " );printf(“%d\n”, .);5.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是 .6.有以下程序段int k=0while(k=1)k++;while 循环执行的次数是。
7.表达式a = 1,a + 1,a + + 的值是___________________。
8.设char string[]=″This_is_a_book!″;则数组的长度应是________________。
9.设int a[2][3] = {{2},{3}};则数组元素_____________________的值为3。
10.设有如下变量说明语句int a[8]={44,55,12,42,94,18,6,67},*p=a;则通过指针变量p引用值为18的表达式是____ ____。
11.执行下述程序#include <stdio.h〉int strlength(char a[],char b[]){int num=0,n=0;while (*(a+num)!='\0')num++;while (b[n]){*(a+num)=b[n];num++;n++;}return (num);}main(){char strl[81],str2[81],*p1=str1,*p2=str2;gets(p1);gets(p2);printf("%d\n”,strlength(p1,p2));}若从键盘输入qwertyabcd则输出结果是____ ___.二、单项选择题。
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、若有定义语句: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的值是_______。
5、若a是int型变量,则执行表达式a=25/3%3后a的值为_______6、设x为无符号整数。
表达式x^(~(~0<<n)<<(p+1-n)))的作用是将x 中从第p位开始的n位求反(1变0,0变1),其他位不变。
请按表达式的求值顺序写出分解步骤,并解释含义。
__________________________________7、函数swap(int x,inty)可完成对x和y值的交换。
在运行调用函数中的如下语句后,a[0]和a[1]的值分别为_______,原因是_______。
a[o]=1;a[1]=2;swap(a[o],a[1]);8、若有定义floata[3][5];则a数组所含数组元素个数是_______,a数组所占的字节数是_______。
9、若有定义:inta[3][4]={{1,2},{0},{4,6,8,10}};,则初始化后,a[1][2]得到的初值是_______,a[2][1]得到的初值是_______。
10、以下程序段通过指针变量q,但不移动q,将如图所示连续动态存储单元的值,从第一个元素起依次输出到终端屏幕。
请填空。
(假设程序段中的所有变量均已正确说明。
)for(k=0;k<10;k++) printf("%d,",_______); printf("\n");二、选择题11、下面4个选项中,是合法转义字符的选项是( )。
2022年安徽理工大学公共课《C语言》科目期末试卷B(有答案)
2022年安徽理工大学公共课《C语言》科目期末试卷B(有答案)一、填空题1、为建立如图10-5所示的存储结构(即每个结点两个域,data是数据域,next是指向结点的指针域),请将定义补充完整。
struct s{char data;_______}node;2、C语言源程序文件的后缀是;经过编译后,生成文件的后缀是;经过连接后,生成文件的后缀是3、在C语言源程序中,一个变量代表【】。
4、若有定义语句: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的值是_______。
5、表达式pow(2.8,sqrt(double(x))值的数据类型为_______。
6、请读程序段:int x=1;printf("%d\n",~x);上面程序段的输出结果是_______。
7、下面程序段中循环体的执行次数是_______。
a=10;b=0;do{b+=2;a-=2+b;}while(a>=0);8、设有如下定义:#define SWAP(T,X,Y){T=X;X=Y;Y=T;}以下程序段将通过调用宏实现变量x和y内容的交换,请填空。
Double x=2.5,y=6.4,z;SWAP(_______);9、下面程序段将输出computer。
请填空。
char c[]="It is a computer";for(i=0;_______;i++){_______;printf("%c",c[j]);}10、下面程序段的运行结果是_______。
char*s1="AbcdEf", *s2="aB";int t;s1++;t=(strcmp(s1,s2)>0);printf("%d\n",t);二、选择题11、以下正确的叙述是( )。
《c语言程序设计》试卷B答案及解析
C语言程序设计期末试题B及答案
C语言程序设计教程期末考试试卷(B卷)(考试时间90分钟,满分100分)一、选择题(每小题1分,共20分)下面各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂抹在答题卡相应的位置上,答在试卷上不得分。
1. 在C语言中,下列标识符中合法的是( )A. -intB. in1_3C. A_B!DD. const2. 不属于C语言基本数据类型的是( )A. intB. unionC. charD. unsigned3. 下面是对宏定义的描述。
不正确的是( )A. 宏不存在类型问题,宏名无类型,它的参数也无类型B. 宏替换不占用运行时间C. 宏替换只是字符串的简单替代D. 宏替换时先检查类型,类型一致时才可以替换4. C语言中,″\\xfds″在内存中占用的字节数是( )A. 3B. 4C. 5D. 65. 设int x;则执行printf(″%x\n″,~x^x);的结果是( )A. ffffffffB. ffC. 0D. 16. 对于while语句,错误的说法是( )A. 用条件控制循环体的执行次数B. 循环体至少要执行一次C. 循环体有可能一次也不执行D. 循环体中可以包含若干条语句7. 执行下列语句后输出的结果是( )int a=8,b=7,c=6;if(a<b)if(b>c){a=c;c=b;}printf("%d,%d,%d\n",a,b,c);A. 6,7,7B. 6,7,8C. 8,7,6D. 8,7,88. 设int a=9,b=20;则printf(″%d,%d\n″,a--,--b);的输出结果是( )A. 9,19B. 9,20C. 10,19D. 10,209. 设static char x[ ]=″12345″,y[ ]={′1′,′2′,′3′,′4′,′5′,′\0′};那么( )A. x数组的长度等于y数组的长度B. x数组的长度大于y数组的长度C. x数组的长度少于y数组的长度D. x数组与y数组的存储区域相同10. 设int i,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是( )for(i=0;i<3;i++)printf(″%d″,x[i][2-i]);A. 147B. 159C. 357D. 36911. 执行完下列语句后,n的值是( )int n;for (n=0 ; n<100 ; n=2*n+1);A. 125B. 126C. 127D. 12812. 有以下语句:int a=6;a+=a-=a*a;printf(“%d”,a);输出结果( )A. –132B. –60C. -24D. 013. 为了连接两个字符串s1与s2,应当使用( )A. strcat( s1,s2 )B. strcpy( s1, s2 )C. strlen( s1, s2 )D. strcmp( s1, s2 )14. 设int a,*p;则语句p=&a;中的运算符“&”的含义是( )A. 位与运算B. 逻辑与运算C. 取指针内容D. 取变量地址15. 下面输出的结果为( )int a=13, b=64;printf(“%d\n”, !a || (b>>3) );A. 13B. 64C. 1D. 016. 下列定义正确的是( )A. enum t={a,b}x;B. enum t{1,2}x;C. enum {′+′,′-′}x;D. enum t{a,b}x;17. 设有定义:struct u{int a[4];float b[3]; char c[16];}aa;则printf(″%d\n″,sizeof(aa));的输出是( )A. 32B. 36C. 12D. 818. 数据-54.78在文本文件中占用的字节个数是( )A. 4B. 5C. 6D. 819. 在宏定义#define p(r) 3.14*r中,请问宏名是( )A. pB. p(r)C. 3.14*rD. p(r) 3.14*r20. 要打开一个已存在的用于修改的非空二进制文件“hello.txt”,正确语句是( )A. fp=fopen( "hello.txt ","r" )B. fp=fopen( "hello.txt ","ab+" )C. fp=fopen( "hello.txt ","w" )D. fp=fopen( "hello.txt ","r+" )二、填空题(每小题4分,共36分)请将每一个空的正确答案写在答题卡相对应的横线上,答在试卷上不得分。
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中的值为( )。
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、C语言的源程序必须通过【】和【】后,才能被计算机执行。
3、C语言源程序的基本单位是________4、若x和a均是int型变量,则执行表达式(1)后的x值为_______,执行表达式(2)后的x值为_______。
(1)x=(a=4,6*2)(2)x=a=4,6*25、已知字母a的ASCIl码为十进制数97,且设ch为字符型变量,则表达式ch='a'+'8'-3'的值为_______。
6、设x的二进制数是11001101,若想通过x&y运算使x中的低4位不变,高4位清零,则y的二进制数是_______。
7、鸡兔共有30只,脚共有90只,下面程序段是计算鸡兔各有多少只。
请填空。
for(x=0;x<=30;x++){y=30一x;if(_______)printf("%d,%d\n",x,y);}8、下面程序wdm的运行结果是_______。
int i,x[10]={2,3,0,3,0,2,3,2,1,3},y[4]={0};for(i=0;i<10;i++)y[x[i]]++;printf("%d\n",y[3]);9、假设M为已经声明的符号常量,则定义一个具有M×M个元素的双精度型数组a,且所有元素初值为0的形式是_______。
10、下面程序段的运行结果是_______。
char s[20]="abcd";char*sp=s;sp++;puts(strcat(sp,"ABCD"));二、选择题11、下面正确的字符常量是( )A."c"B. "\\"C. 'w'D. "12、若有说明语句:charc='\72';则变量c( )。
2022年湖北工业大学公共课《C语言》科目期末试卷B(有答案)
2022年湖北工业大学公共课《C语言》科目期末试卷B(有答案)一、填空题1、假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。
请填空。
a+=_______;b=a-_______;a-=_______;2、C语言源程序文件的后缀是;经过编译后,生成文件的后缀是;经过连接后,生成文件的后缀是3、一个C语言源程序由若干函数组成,其中至少应含有一个________4、若x和a均是int型变量,则执行表达式(1)后的x值为_______,执行表达式(2)后的x值为_______。
(1)x=(a=4,6*2)(2)x=a=4,6*25、假设变量a、b均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为_______。
6、若x=0123,则表达式(5+(int)(x))&(~2)的值是_______。
7、执行下面程序段后,k的值是_______。
k=1;n=263;do{k*=n%10;n/=10;} while(n);8、若有定义:doublex[3][5];,则x数组中行下标的下限为_______,列下标的上限为_______。
9、下面程序段的运行结果是_______。
int i=5;char c[6]="abcd";do{c[i]=c[i-1];}while(--i>0);puts(c);10、以下程序的运行结果是_______。
#include <stdio.h>int main(){char s[]="ab\'cdefg\",*p=s+1;printf("%c”,*(p++));printf("%s",p+2);return(0);}二、选择题11、下面4个选项中,是非法常量的选项是( )。
12、sizeof(float)是()。
A.一个双精度型表达式B.一个整型表达式C.一种函数调用D.一个不合法的表达式13、以下叙述不正确的是( )A.一个C源程序可由一个或多个函数组成B.一个C源程序必须包含一个main函数C.C程序的基本组成单位是函数D.在C程序中,注释说明只能位于一条语句的后面14、以下叙述正确的是A.在C程序中,main函数必须位于程序的最前面B.C程序的每行中只能写一条语句C.C语言本身没有输入输出语句D.在对一个C程序进行编译的过程中,可以发现注释中的拼写错误15、以下对二维数组a的正确说明是()。
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、若采用十进制数的表示形式,则077为_______,0111为_______,0xab为_______。
5、若有定义语句:charc='\010';则变量c中包含的字符个数为_______。
6、请读程序段:int x=1;printf("%d\n",~x);上面程序段的输出结果是_______。
7、下面程序段中循环体的执行次数是_______。
a=10;b=0;do{b+=2;a-=2+b;}while(a>=0);8、下面程序段的运行结果是_______。
int i=5;char c[6]="abcd";do{c[i]=c[i-1];}while(--i>0);puts(c);9、若有定义:doublex[3][5];,则x数组中行下标的下限为_______,列下标的上限为_______。
10、定义语句int*f();int(*f)();的含义分别为_______和_______。
二、选择题11、设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为( )。
A.intB.floatC.doubleD.不确定12、若有说明语句:charc='\72';则变量c( )。
A.包含1个字符B.包含2个字符C.包含3个字符D.说明不合法,c的值不确定13、一个C语言程序由( )。
c语言程序设计期末考试试卷(B)
{
int x[4][4]={{1,2,3,4},{3,4,5,6},{5,6,7,8},{7,8,9,10}};
int i,j;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
*(*(x+i)+j)/=*(*(x+i)+i);
for(i=0;i<4;i++)
{
for(j=0;j<4;j++) printf("%3d",*(*(x+i)+j));
则以下叙述中正确的是C。
A、ptr是指向一维组数的指针变量
B、ptr是指向int型数据的指针变量
C、ptr是指向函数的指针,该函数返回一个int型数据
D、ptr是一个函数名,该函数的返回值是指向int型数据的指针
重庆邮电大学2006-2007学年第一学期
一、单选题(每题1分共三十分)
1、以下叙述不正确的是D。
4、设有说明;char w;int x;float y;double z;则表达式w-x+z-y值的数据
类型为D。
A、float B、char C、int D、double.
5、能正确表示“当x取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是B。
A、(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)
A、203 B、204 C、1a4 D、1a6
22、左移运算:int a=16,c=a<<2;变量c的值是。
《C语言》试卷B
课程代码: 座位号:新疆大学考试《C 语言》试卷B姓名: 学号: 专业:学院: 班级:20 年 月第一部分 选择题(共30分)一、单项选择题(本大题共15小题,每题只有一个正确答案,答对一题得2分,共30分)1、正确的C 语言标识符是 【 】 A ._buy_2 B .2_buy C .?_buy D .buy?2、C 语言中一个源程序文件由一个或多个【 】组成。
A .子程序 B .语句 C .函数D .字符3、下列说法中,错误的是 【 】 A .每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号。
B .每个函数由函数首部和函数体两部分组成,主函数也不例外。
C .主函数可以调用用户自定义函数或系统函数,用户函数可以相互调用。
D .程序可以由若干个函数组成,但是必须有、而且只能有一个主函数。
4、已知各变量的类型说明如下: int m=8,n, a, b; unsigned long w=10;double x=3.14, y=0.12;则以下符合C语言语法的表达式是【】 A.n=n*3=18 B.a+=(b=2)*(a=8)C.x%3 D.y=float (m)5、在C语言中,要求运算数必须是整型的运算符是【】A./ B.++ C.* D.%6、若有定义 int i=3; 则语句 printf(“%d”, ++i); 输出结果是【】A.0 B.1 C.3 D.47、putchar函数可以向终端输出一个【】A.字符数组 B.字符或字符型变量值C.实型变量值 D.字符串8、有如下程序,若要求x1、x2、y1、y2的值分别为10、20、A、B,正确的数据输入是【】(注:└┘代表空格)int x1,x2;char y1,y2;scanf(”%d%d”,&x1,&x2);scanf(”%c%c”, &y1,&y2);A.1020AB B.10└┘20└┘ABC.1020└┘AB D.10└┘20AB9、下列运算符中优先级最高的是【】A.< B.&& C.+ D.!=10、执行以下程序后输出的结果是【】main(){ int y=10;do{y--;}while(--y);printf("%d\n",y--);}A.-1B.1C.8D.011、以下程序段的输出结果是【】char a[]=“China” , b[10]=“Beijing” ;printf(“%d %d\n”,sizeof(a) , sizeof(b);A. 7 7B. 8 8C. 6 10D. 10 1012、有以下程序:void main(){ int *p,a=102,b=8;p=&a;a=*p+b;printf("%d\n",*p); }程序运行后的输出结果是【】A. 100B. 110C. 5D. 2000000513、以下描述中不正确的是【】A. 语句 for(i=0 ; ; i++) 表示无限循环B. 语句 for( ; ; ) 表示无限循环C. 语句 for() 也表示无限循环D. while(1) 表示无限循环14、用数组名作为函数调用时的实参,则传递给形参的是【】A. 数组首元素的地址。
2022年喀什大学公共课《C语言》科目期末试卷B(有答案)
2022年喀什大学公共课《C语言》科目期末试卷B(有答案)一、填空题1、为建立如图10-5所示的存储结构(即每个结点两个域,data是数据域,next是指向结点的指针域),请将定义补充完整。
struct s{char data;_______}node;2、C语言源程序文件的后缀是;经过编译后,生成文件的后缀是;经过连接后,生成文件的后缀是3、C语言源程序的基本单位是________4、在C语言中的实型变量分为两种类型,它们是_______和_______。
5、若采用十进制数的表示形式,则077为_______,0111为_______,0xab为_______。
6、请读以下函数:getbits(unsigned x,unsigned p,unsigned n)'{x=((x<<(p+1-n))&((unsigned)~0>>n));return(x);}假设机器的无符号整数字长为16位。
若调用此函数时x=0115032,p=7,n=4,则函数返回值的八进制数是_______。
7、下面程序段的运行结果是_______。
x=2;do{printf("*");x--;)while(!x==0);8、下面程序段的运行结果是_______。
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);9、下面程序wdm的运行结果是_______。
int i,x[10]={2,3,0,3,0,2,3,2,1,3},y[4]={0};for(i=0;i<10;i++)y[x[i]]++;printf("%d\n",y[3]);10、以下程序段通过指针变量q,但不移动q,将如图所示连续动态存储单元的值,从第一个元素起依次输出到终端屏幕。
C语言程序设计基础期末考试试卷‘B’及答案完整版
C语言程序设计基础期末考试试卷‘B’及答案HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】一、单项选择题1. 在C语言中,下面字符串能用作变量名的是( )。
A、a+bB、autoC、2-andD、a22. 若double x=2,y;则执行y=x+3/2;后,y的值是( )。
A、 B. C. D. 33. 下列关于C语言中字符常量与字符串常量的叙述中,错误的是( )。
A、字符常量是用单撇号括起来的一个字符B、空格字符也可用作字符常量C、字符串常量是用单撇号括起来的一个字符序列D、字符串常量是用双撇号括起来的一个字符序列4. 若有以下变量说明和数据的输入方式,则正确的输入语句为( )。
变量说明:float x1,x2;数据的输入方式:<回车><回车>A、scanf(“%f,%f”,&x1,&x2);B、scanf(“%f%f”,&x1,&x2);C、scanf(“%,%”,&x1,&x2);D、scanf(“%%”,&x1,&x2);6. 在一个源文件中定义的全局变量的作用域为()。
A. 本文件的全部范围B. 从定义该变量开始至本文件结束C. 本函数的全部范围D. 本程序的全部范围7. 当调用函数时,实参是一个数组名,则向函数传送的是( )。
A、数组的长度B、数组的首地址C、数组每一个元素的地址D、数组每个元素中的值8.若j为整型变量,则下面while循环( )。
j=10;while(j!=0) j=j-1;A、执行0次B、执行1次C、执行10次D、执行无限次9. 在while(x)语句中的x与下面条件表达式等价的是:( )。
A、x!=0B、 x==1C、x!=1D、x==010. 以下对C语言函数的描述中,正确的是( )。
A、调用函数时,参数可以是表达式B、函数的定义可以是嵌套C、函数必须有返回值D、所有函数必须在同一个程序文件中定义12. C语言中函数返回值的类型由( )决定的。
c语言期末试卷B卷(附答案)
一、单项选择题(每小题2分,共30分)1. 下列关于C语言用户标识符的叙述中正确的是( B )(A)用户标识符中可以出现在下划线和中划线(减号)(B)用户标识符中不可以出现中划线,但可以出现下划线(C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头(D)用户标识符中可以出现在下划线和数字,它们都可以放在用户标识符的开头2. 在C语言中,合法的字符常量是( A )(A)’\087’ (B)’\x43’ (C)’abe’ (D)”\0”3. x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是( B )(A) INPUT x、y、z; B)scanf(“%d%d%d”,&x,&y,(C) scanf(“%d%d%d”,x,y,z); (D)(scanf(“%d%d%d”,&x,y,&z);4. 若整型变量a、b、c、d中的值依次为:1、4、3、2。
则条件表达式a<b?a:c<d?c:d的值( )(A) 1 (B) 2 (C) 3 (D) 45. 设有:int a=3,b=2,c=6,d=4,m=2,n=3;执行((m=a>b) || (n=c>d))后n的值为( B )(A) 0 (B) 1 (C) 2 (D) 36. 若a为int类型,且其值为3,则执行完a*=a+=a*a;后,a的值是( D )(A) –3 (B) 9 (C) –12 (D) 1447. 设int a=12,b=8;则a/b的结果为:( B )(A) 1.5 (B) 1 (C) 3/2 (D) 28. 若定义:int a=511,*b=&a; 则printf("%d\n",*b);的输出结果为(D)(A) 无确定值 (B) a的地址 (C) 512 (D) 5119. 在C语言中,引用数组元素时,其数组下标的数据类型允许是( C )(A) 整型常量 (B)整型表达式(C ) 整型常量或整型表达式 (D) 任何类型的表达式10. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( B )(A) 地址传递 (B) 单向值传递(C) 由实参传给形参,再由形参传回实参 (D) 传递方式由用户指定11. 数字字符0的ASCII值为48,若有以下程序main( ){ char a='1',b='2';printf("%c,",b++);printf("%d\n",b-a);}程序运行后的输出结果是( A )(A)3,2 (B) 50,2 (C)2,2 (D)2,5012. 以下函数值的类型是( D )fun ( float x ){ float y;y= 3*x-4;return y;}(A) int (B) 不确定 (C) void (D) float13. 以下能正确定义一维数组的选项是( B )(A) int a[5]={0,1,2,3,4,5}; (B)int a[]={0,1,2,3,4,5};(C) char a={'A','B','C'}; (D)int a[5]="0123";14. 有以下程序,结果为: ( D )main( ){ int a[5]={1,2,3,4,5};int *pa=&a[1];printf(“%d”,pa[2]);}(A) 3 (B) 4 (C) 5 (D) 215. 假设struct student{ int num;float score;} stu1;则下列赋值语句中正确的是( C )(A) student.score=85; (B) student={1001,95};(C) stu1.num=1001; (D) stu1->num=1001;二、判断题(对的打“√”,错的打“×”,每小题1分,共10分)1. 定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。
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、若a是int型变量,则表达式(a=4*5,a*2),a+6的值为_______。
5、在C语言中,用“\”开头的字符序列称为转义字符。
转义字符“\n”的功能是_______;转义字符“\r”的功能是_______。
6、在C语言中,&运算符作为单目运算符时表示的是_______运算;作为双目运算符时表示的是_______运算。
7、下面add函数的功能是求两个参数的和,并将和值返回调用函数。
函数中错误的部分是_______,改正后为_______。
void add(float a,float b){float c;c=a+b;return c;}8、下面程序段的运行结果是_______。
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);9、若有定义:doublex[3][5];,则x数组中行下标的下限为_______,列下标的上限为_______。
10、设main函数的说明为:int main(int argc,char*argv[]),且有命令行为:FILE1123<回车>,则argc的值是_______,argv[1]的值是_______。
《c语言程序设计》试卷B答案及解析
-----------------------------------------装---------------------------------------订-----------------------------------线-------------------------------------------------------------年级: 专业: 组别: 学号: 姓名:------------------------------------------密--------------------------------------封-----------------------------------线-------------------------------------------------------------20 19 -20 20 学年第 1 学期XXXXXXXXXX 学院期末考试试卷(闭卷)专业:XXXXXX 年级:XXXXX 课程:计算机软件技术(必修课)一、单项选择题(每小题1分,共30分)1、C 语言的基本构成单位是( )。
A 、 函数B 、 函数和过程C 、 超文本过程D 、 子程序2、一个C 语言程序总是从( )开始执行。
A 、 主过程B 、 主函数C 、 子程序D 、主程序 3、若x 为int 型变量,则执行以下语句后,x 的值为( )。
x=6; x+=x-=x*x;A 、 36B 、 -60C 、 60D 、 -244、以下有4组用户标识符,其中合法的一组是( )。
A 、For -sub Case B 、4d DO SizeC 、f2_G3 IF abcD 、WORD void define 5、以下选项中,能用作数据常量的是( )。
A 、o115 B 、0118 C 、1.5e1.5 D 、115L 6、分析以下程序, 下列说法正确的是( )。
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、若x和n均是int型变量,且x和n的初值均为5,则执行表达式x+=n++后x的值为_______,n的值为_______。
5、表达式pow(2.8,sqrt(double(x))值的数据类型为_______。
6、请读程序段:unsigned a=16;printf("%d,%d,%d\n",a>>2,a=a>>2,a);以上程序段的输出结果是_______。
7、函数swap(int x,inty)可完成对x和y值的交换。
在运行调用函数中的如下语句后,a[0]和a[1]的值分别为_______,原因是_______。
a[o]=1;a[1]=2;swap(a[o],a[1]);8、若有定义:doublex[3][5];,则x数组中行下标的下限为_______,列下标的上限为_______。
9、下面程序段的运行结果是_______。
int i=5;char c[6]="abcd";do{c[i]=c[i-1];}while(--i>0);puts(c);10、请填空:建立如图所示存储结构所需的说明语句是_______。
建立如图所示为变量a输入数据的输入语句是_______。
建立如图所示存储结构所需的赋值语句是_______。
二、选择题11、以下正确的叙述是( )。
A.在C程序中,每行中只能写一条语句B.若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C.在C程序中,无论是整数还是实数,都能被准确无误地表示D.在C程序中,%是只能用于整数运算的运算符12、下面4个选项中,是非法常量的选项是( )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二.填空题(每空1分,共16分)1. ‘c’表示一个字符,“c”表示一个字符串,后者比前者多一个元素‘\0’2. 23. 0 , 14. #include “stdio.h”或#include <stdio.h>5. 1) 6 , 42) 6 , 56. continue ,breake7. AB8. China!9. (x%4= =0)&&(x%100!=0)(括号可以不要)x<0&&y>0sin(3.1415926/2)+x*x*(y+z) 或sin(3.14/2)+pow(x,2)*(y+z)三.读程序,写出运行结果(6*4=24分)1. 2. 1 5 14 30 result=273. 4.Before: 10 20 30 40 50 1223 34 45 60 50 40 30 20 10 After:21 32 43 54 65. 6.Before called swap(): a=10,b=20 shanghai is a great city! In swap(): x=20,y=10 hanghai i a great city! After called swap(): a=20,b=10 m=2四. 写程序(3*10=30分)(编程题写在此页背面)四.编程题答案:(1)#include "stdio.h"#define N 20void main(){ int sum=0,i;static int a[N]={8},b[N]={1};sum=sum+a[0];for(i=1;i<N;i++){ b[i]=b[i-1]+3;a[i]=a[i-1]+b[i];sum=sum+a[i];}printf("sum=%5d\n",sum);}(2)#include "stdio.h"int fun(int a,int b){int r,t,ggg;if(a<b){t=a;a=b;b=t;}r=a%b;while(r!=0){ a=b;b=r;r=a%b;}ggg=b;return(ggg);}void main(){ int m,n,k;printf("请输入两个整数: ");scanf("%d%d",&m,&n);k=fun(m,n);printf("\n其最大公约数为:%4d\n",k);}(3)#include "stdio.h"#define N 10void main(){ int a[N],i,j,k,t,n;printf("请输入10个整数: ");for(i=0;i<N;i++)scanf("%d",&a[i]);for(i=0;i<N-1;i++){ k=i;for(j=i+1;j<N;j++)if(a[k]<a[j]) k=j;if(i!=k) { t=a[i];a[i]=a[k];a[k]=t;} }for(i=0;i<N;i++)printf("%5d",a[i]);printf("\n");for(n=N,i=0;i<n;i++)for(j=n-1;j>i;j--)if(a[i]==a[j]){ for(k=j+1;k<n;k++)a[k-1]=a[k]; n--;}for(i=0;i<n;i++)printf("%5d",a[i]);printf("\n");}一.单选题(30*1=30分)1.下列哪一个不是合法的变量名()。
A. _123B. _auto_C. Mr.thD. abc_1_2_32.C语言程序由()组成。
A.子程序 B. 语句 C. 函数 D. 主程序和子程序3.设x、y、z均为实型变量,代数式“x /(yz)”的正确写法是()。
A.x / y * z B. x % y % z C. x / y / z D. x % y * z4.以下关于运算符优先顺序的描述中正确的是()。
A)关系运算符<算术运算符<赋值运算符<逻辑与运算符B)算术运算符<关系运算符<赋值运算符<逻辑与运算符C)赋值运算符<逻辑与运算符<关系运算符<算术运算符D)赋值运算符<关系运算符<逻辑与运算符<算术运算符5.C的三种基本结构是()。
A. 顺序结构、转移结构、递归结构B. 顺序结构、嵌套结构、递归结构C. 顺序结构、选择结构、循环结构D. 选择结构、循环结构、嵌套结构6.已知:char a; int b; float c; double d; 则表达式a*b+c-d的结果为()型。
A.double B. int C. float D. char7.为了避免嵌套的条件分支语句if~else的二义性,特规定else总是与()组成配对关系。
A.缩排位置相同的if B. 在其前未配对的ifC. 在之前未配对的最近的ifD. 同一行上的if8.在C语言程序中,()。
A.函数的定义可以嵌套,但函数的调用不可以嵌套B.函数的定义不可以嵌套,但函数的调用可以嵌套C.函数的定义和函数的调用均不可以嵌套D.函数的定义和函数的调用均可以嵌套9.设有整型变量i=3,执行语句k=(++i)+( ++i) +(++i)后,k的值为()。
A. 15B. 16C. 17D. 1810.表达式“1 ? ( 0 ? 3 : 2) : (10 ? 1 : 0)”的值为()。
A.3 B. 2 C. 1 D. 011.已说明int a=256,执行语句“printf(“%x”, a);”的结果是()。
A. 0100B. 0256C. 0ffeD. 00ff12.下面对字符数组s的初始化不正确的是()。
A. char s[5]={“abc”};B. char s[5]={‘a’, ‘b’, ‘c’};C. char s[5]=“”;D. char s[5]=“abcdef”;13.在C语言中,函数的隐含存储类别是()。
A. autoB. staticC. externD. 无存储类别14.下列不正确的转义字符是()。
A)'\\' B)‘\"’C) '074' D) '\0'15.执行下列程序后,变量i的正确结果是:()。
int i=10;switch( i ) {case 9: i+=1;case 10: i+=1;case 11: i+=1;default: i+=1;}A. 11B.12 C . 13 D. 1416.在“static int a[5]={1, 3, 5}; ”中,数组元素a[3]的值是()A.0 B. 1 C. 3 D. 517.若有说明:int a[3][3]={1,2,3,4,5,6,7}; 则a[2][2]的值为()。
A) 0 B) 5 C) 2 D) 无确定值18.以下程序的输出结果为()。
#include <stdio.h>voidmain( ){ int i=0,j=0,a=6;if( (++i>0) || (++j>0) ) a++;printf(“i=%d, j=%d, a=%d\n”,i, j, a);}A. i=0, j=0, a=6B. i=1, j=1, a=7C. i=1, j=0, a=7D. i=0, j=1, a=719.已知int x=10, y=20, z=30; 以下语句执行后x, y, z的值是()。
if(x>y) z=x;x=y;y=z;A. x=10, y=20, z=30B. x=20, y=30, z=30C. x=20, y=30, z=10D. x=20, y=30, z=2020.在传值调用中,要求()。
A.形参和实参类型任意,个数相等B.实参和形参类型都完全一致,个数相等C.实参和形参对应的类型一致,个数相等D.实参和形参对应的类型一致,个数任意21.以下函数调用语句中含有()个实参。
excc((v1, v2), v3, v4, v5);A.3 B. 4 C. 5 D. 622.设有一结构体变量定义如下:struct date {int year;int month;int day;};struct worklist {char name[20];char sex;struct date birthday;}person;若要对结构体变量person的出生年份进行赋值时,下面正确的赋值语句是()。
A. year=1976 B. birthday . year=1976C. person . year=1976D. person . birthday . year=197623.对两数组a,b分别作如下初始化char a[ ]=”abcd”,b[ ]={‘a’,’b’,’c’,’d’};则以下叙述正确的是()。
A. a与b数组完全相同B. a与b长度相同C. a与b的最后一个元素都是‘\0’D. a数组比b数组多一个元素24.选择以下程序的运行结果为( )。
#include "stdio.h"void main(){ struct date{ int year, month;float day;}today;printf ("date:%3d\n",sizeof(today) );}A.2 B. 4 C. 6 D. 825.下列关于链表的说法中,不正确的是:()。
A.链表是一种动态地进行存储分配的数据结构B.链表必须有头指针变量,用来存放第一个结点的地址C.链表的每个结点必须包含一个指针变量,用来存放下一个结点的地址D.链表中各结点在内存中一定是连续存放的26.以下程序的输出结果是()。
#include <stdio.h>func(int a, int b){ static int m=1, i=2;i += m ;m = i + a + b;return ( m );}void main( ){ int k=4, m=1, p;p=func(k, m);printf(“%d, ”, p);p=func(k, m);printf(“%d\n”, p);}A. 8, 8B. 8, 9C. 8, 15D. 8, 1627.选择出正确的赋值语句(设:int a, x;)()。