杭州师范大学C语言试题第7套
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语言》科目期末试卷A(有答案)

2022年杭州师范大学钱江学院公共课《C语言》科目期末试卷A(有答案)一、填空题1、设x的二进制数是11001101,若想通过x&y运算使x中的低4位不变,高4位清零,则y的二进制数是_______。
2、C语言源程序文件的后缀是;经过编译后,生成文件的后缀是;经过连接后,生成文件的后缀是3、在C语言中,输入操作是由库函数________完成的,输出操作是由库函数________完成的。
4、若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式.pow (y,fabs(x))的值为_______5、表达式x=6应当读做_______6、下面程序段的运行结果是_______。
char*s1="AbcdEf", *s2="aB";int t;s1++;t=(strcmp(s1,s2)>0);printf("%d\n",t);7、下面程序段的运行结果是_______。
x=2;do{printf("*");x--;)while(!x==0);8、已有定义int a;float b,x;char cl,c2;为使a=3、b=6.5、x=12.6、cl='a'、c2='A',正确的scanf函数调用语句是_______,数据输入的形式应为_______。
9、设有以下定义和语句,请在printf语句的_______中填上能够正确输出的变量及相应的格式说明。
union{int n;doublex;}num;num.n=10;num.x=10.5;printf("_______",_______);10、设有宏定义如下:#define MIN(x,y)(x)>(y)?(x):(y)#define T(x,y,r)x*r*y/4则执行以下语句后,s1的值为_______,s2的值为_______。
C语言程序设计历年统考试题集10套含答案

C语言程序设计试题集(第1套)请将第一、二、三、四题的答案写在答题页的相应题目的后面(写在别处不得分)。
一、单项选择题(每题2分,共20分)1、以下叙述不正确的是A)C程序由函数构成B) 一个C程序至少包含一个main函数C) main函数可以调用main函数D) main函数是每个程序执行的起始点2、C程序中能直接让机器执行的文件是A)编辑后的.c源文件 B)通过编译的.obj文件C)通过连接的.exe文件 D)编辑后的.bak文件3、假设定义变量如下:int x;float y;以下输入语句中哪个是正确的?A)scanf(“%f%d”,&y,&x); B)scanf(“%f%d”, y, x); C)scanf(“%f%f”,&y,&x); D)scanf(“%d%d”,&y,&x);4、已知:int a[][3]={1,2,3,4,5,6};则数组a的第一维的大小是A)2 B)3 C)4 D)无确定值5、.如果switch表达式是char 变量code,下面哪一个case子句是合法的。
A)case “3”:B) case ‘3’: C)case 3 : D)case =3:6、能正确表示”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)7、C语言中while和do-while 循环的主要区别是A)do-while循环至少无条件执行一次,而while循环可能一次也不执行B)while循环控制条件比do-while循环控制条件严格C)do-while循环允许从外部转到循环体内,而while循环不允许D)do-while的循环体可以是复合语句,而while循环不可以是复合语句 8、下面哪一项函数的头部是有效的?A)one(int a int b)B)int thisone(char x)C)char another(int a,b)D)double yetanother9、若有定义char x[ ]= "12345"; char y[ ]={ '1', '2', '3', '4', '5'};则A)x数组与y数组的长度相同B)x数组长度大于y的长度C)x 数组长度小于y数组长度 D)x数组等价于y 数组10、二维数组的第一个元素的行下标和列下标是A) 1,1 B)0,1 C)1,0 D) 0,0二、填空题(每空3分,共30分)1、如果a=4, b=3,那么,在执行语句a=b;之后,a、b的值分别是(1)2、语句:if(6>5)printf(“#”);printf(“$”);输出(2)3、for( sum=j=0; j<=10; ++j) sum += j; 循环结束后sum的值等于(3)4、长度为10的int类型数组和长度为3 的double类型数组,哪一个数组占用的内存空间多(4)5、字符数组a)char a[]=“one”;占多少内存字节(5)6、如果ch<‘A’或ch>‘Z’,那么,表达式ch>=‘A’&& ch<=‘Z’的值是(6)7、编写C语句,交换a、b的值(7)8、为了使用库函数getchar(),必须在程序中包含命令(8)9、设int numbers[5]={17,25,30,56,58};编写C的for语句,将数组numbers中的每个元素减去3。
C语言编程测试题(含答案)(基础教资)

《C语言程序设计》阶段性考核(90分钟)学号__________ 姓名_________ 得分_________程序设计题(本大题共7小题,选5题完成,3、5题必选,共100分)注意:将在vc++中调试通过的代码复制到每题“程序代码”下面,然后提交本文档即可,文档命名为“姓名.doc”,如张文.doc1、求出 10 到100内能同时被2、3、7整除的数,并输出。
程序代码:#include"stdio.h"void main(){//求出 10 到100内能同时被2、3、7整除的数,并输出int i;for(i=10;i<=100;i++){if(i%2==0&&i&3==0&&i%7==0)printf("%d ",i);}}2、输出Fibonacci 数列1,1, 2,3, 5, 8, 13……前42个数,并以每行5个数方式输出。
程序代码:#include"stdio.h"void main(){//输出Fibonacci 数列1,1, 2,3, 5, 8, 13……前42个数,并以每行5个数方式输出。
long int f[42];int i;f[0]=f[1]=1;for(i=2;i<42;i++)f[i]=f[i-1]+f[i-2];for(i=0;i<42;i++){if(i%5==0) printf("\n");printf("%10d",f[i]);}}3、编写程序,输入一个3×3的矩阵,求两个对角线元素中的最大值程序代码:#include"stdio.h"void main(){//编写程序,输入一个3×3的矩阵,求两个对角线元素中的最大值int a[3][3];int i,j,max;/*a[0][0] a[0][1] a[0][2] 1 2 3a[1][0] a[1][1] a[1][2] 4 5 6a[2][0] a[2][1] a[2][2] 7 8 9*///二重循环输入数组元素printf("请输入数组元素\n");for(i=0;i<3;i++)for(j=0;j<3;j++){scanf("%d",&a[i][j]);}//输出二维数组for(i=0;i<3;i++){for(j=0;j<3;j++){printf("%d ",a[i][j]);}printf("\n");}//求二维数组对角线最大值,i=j or i+j=2max=a[0][0];for(i=0;i<3;i++)for(j=0;j<3;j++){if(i==j||i+j==2){if(a[i][j]>max) max=a[i][j]; }}//输出最大值printf("max=%d\n",max);}4、编写程序,输入12个数,按照从后向前的顺序依次找出并输出其中能被7整除的所有整数以及这些整数的和,在屏幕上输出程序代码:#include"stdio.h"void main(){//4、编写程序,输入12个数,按照从后向前的顺序依次找出并输出其中能被7整除的所有整数以及这些整数的和,在屏幕上输出int a[12];printf("请输入数组元素\n");for(i=0;i<12;i++)scanf("%d",&a[i]);//注意,从后向前找,下标递减for(i=11;i>=0;i--)if(i%7==0){printf("%d ",a[i]);sum=sum+a[i];}printf("\n");printf("sum=%d\n",sum);}5、编写程序打印以下图形:(必须使用循环结构)1 23 4 56 7 8 9程序代码:#include"stdio.h"void main(){int a[4][4];int k=0,i,j;//输入数组元素printf("请输入数组:\n");for(i=0;i<4;i++)for(j=0;j<4;j++){scanf("%d",&a[i][j]);}//变量k累加赋值for(i=0;i<4;i++)for(j=0;j<=i;j++){a[i][j]=k++;//等同于a[i][j]=k; k=k+1;}//输出数组for(i=0;i<4;i++){for(j=0;j<=i;j++){printf("%d ",a[i][j]);}printf("\n");}}6、已知字符串char s[50]=”Iamstudent”,请编写程序将字符a插入到student之前,结果为“Iamastudent”,程序框架为:Void main(){ char s[50]=”Iamstudent”;………..}程序代码:#include"stdio.h"void main(){//6、已知字符串char s[50]="Iamstudent",请编写程序将字符a插入到student之前,结果为"Iamastudent"char s[50]="Iamstudent";int i;//字符串实际长度为10,数组下标为0~9的存储for(i=strlen(s)-1;s[i]!='s';i--)s[i+1]=s[i];//每个字符向后移一个s[i+1]=s[i];//'s'向后一定一个,‘s’的位置用来存放‘a’s[i]='a';printf("%s\n",s);}7、设计程序计算以下式子的值1+(1+2)+(1+2+3)+(1+2+3+4)+。
1试题 c语言试题以及答案

main()
{
int s;
float n,t,pi;
t=1; pi=0; n=1.0; s=1;
while(fabs(t)>1e-6)
{
pi=pi+t;
n=____;
s=-s;
t=____;
}
pi=____;
printf("pi=%10.6f \n",pi);
}
请在左边文本框当中输入正确答案
参考答案:n+2
请在左边文本框当中输入正确答案
参考答案:s/n
请在左边文本框当中输入正确答案
参考答案:pi*4
. 杭州师范大学
计算机技术基础(C程序设计)课程练习平台 .
学号: 12X2C0166CPP 姓名: 练习264 班级: 所有专业
注意:回答完所有试题之后,需要点击本页面最后的【交卷完成,退出系统】按钮。
题号 一 二 三 四 五
题型 判断题 单选题 程序填空题 程序阅读题 程序设计题
if(I+j= =2) s2=s2+a[I][j];
}
printf( "%d,%d\n", s1, s2) ;
}
A)、18 10 B)、18, 10 C)、10,18 D)、10 18
参考答案:B
第3题: 阅读程序,写出运行结果。
参考答案:对
对
错
第7题:在C语言中十六进制数100转换为十进制数为 256
参考答案:对
对
错
第8题:在标准C语言中,宏定义的结尾也要加“;”。
大学生C语言程序设计(第四版 谭洪强)实验7 答案

实验七 参考答案(参考答案)(1) (sy7-1.c )请编写函数fun ,它的功能是:计算并输出n (包括n )以内能被5 或9 整除的所有自然数的倒数之和。
例如,若主函数从键盘给n 输入20后,则输出为s=0.583333。
注意:n 的值要求不大于100。
算法分析:使用for 循环i ,遍历n 包含n 以内的所有整数,逐一判断每个i ,是否满足条件(能被5 或9 整除),如果满足,则把它的倒数累加到累加器里。
注意:i 的倒数要表示成:1.0/i;参考子函数如下:double fun(int n){double sum=0;int i;for(i=5;i<=n;i++)if(i%5==0||i%9==0)sum=sum+1.0/i;return sum;}(2) (sy7-2.c ) 请编写函数fun ,其功能是:根据以下公式计算s ,并计算结果作为函数值返回,n 通过形参传入。
n s ⋯++++⋯++++++=321132112111例如:若n 的值为11时,函数的值为1.83333算法分析:等式右边从第二项(i=2)开始,其分母等于前一项的分母加上i ;一共有n 项;求出每项的分母,然后把每项进行累加。
参考子函数如下:float fun(int n){float sum=1; //sum 中已经累加了第一项的值int i,m=1; //m 表示每项的分母;for(i=2;i<=n;i++){ m=m+i;sum=sum+1.0/m;}return sum;}(3) (sy7-3.c)请编写函数fun,其功能是:将两个两位数的正整数a、b 合并形成一个整数放在c 中。
合并的方式是:将 a 数的十位和个位依次放在c 数的十位和千位上,b 数的十位和个位数依次放在c 数的个位和百位上。
例如,当a=45,b=12,调用该函数后,c=5241。
算法分析:对一个两位数n,它的各位可以通过n%10求的,它的十位数可以通过n/10求的;所以分别用上述方法求的a和b的个位和十位,同时按照要求累加到c里。
4试题 c语言试题以及答案

第9题:只有在使用时才为该类型变量分配内存的存储类说明是 auto和 static
参考答案:错
对
错
第10题:在C语言中,合法的长整型常数是216D
参考答案:错
对
错
--------------------------------------------------------------------------------
str1[I]=’ ’;
str1[strlen(str1)-1]='\0';
}
}
A)、
*******
*****
***
*
B)、
*******
*****
***
*
C)、
*******
*****
#include <stdio.h>
#include <string.h>
void main()
{ char str1[ ]="*******";
for(int I=0;I<4; I++)
{
printf("%s\n",str1);
三、程序填空题
第1题:
读入一批正整数(以零或负数为结束标志),输出其中的素数。函数prime( int m)用于判断m是否为素数。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。请为程序填空。
#include <stdio.h>
#include <math.h>
printf("%c,%d,%c,%d\n", c1,c1,c2,c2);
3试题 c语言试题以及答案

参考答案:错
对
错
第5题:在标准C中,“=”是判断两个数是否相等。
参考答案:错
对
错
第6题:在标准C语言中,指针函数参数传递是单向传递,且传递的是变量的地址
参考答案:对
对
错
第7题:EOF能够被识别为常量
参考答案:对
对
错
第8题:对于定义int *p赋初值;则初值是赋给P变量的。
参考答案:对
对
错
第9题:C语言中数据的存储结构是指数据的逻辑结构在内存中的表示
参考答案:对
第2题:下面程序的输出结果是:
#include<stdio.h>
int func( int a, int b)
{
int c;
c=a+b;
return c;
}
main()
{
int x=6, y=7, z=8, r;
r=func(x--+y--,z--);
A、for (;;x+=i);
B、while (1) x++
C、for (i=10;;i--) sum+=i;
D、for (;(c=getchar())!='\n';) printf("%c",c);
第10题:字符串指针变量中存入的是
参考答案:A
A、字符串的首地址
B、字符串
C、第一个字符
D、字符串变量
--------------------------------------------------------------------------------
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、判断题第1题:C语言是一种结构化程序设计语言。
参考答案:对第2题:函数调用可以作为独立的语句存在参考答案:对第3题:在C语言中使用位段时,一个位段可以在不同的存储单元中。
错第4题:在switch语句中,case后可不加“{、}”。
参考答案:对第5题:在标准C中,while后表达式只能是逻辑或关系表达式。
错第6题:在C语言中,定义结构体变量时可以省略关健字struct。
错第7题:在标准C中并不区分英文字符的大小写。
参考答案:错第8题:二进制文件打开后可以先读文件的末尾,而顺序文件不可以对第9题:单目运算符++的运算对象可以是char型变量和int型变量,但不能是float 型变量参考答案:对第10题:“--”运算符的优先级比“-”运算符的优先级低。
参考答案:错二、单选题选择正确的答案输入第1题:若有以下说明:int w[3][4]={{0,1},{2,4},{5,8}};int(*p)[4]=w;则数值为4的数组元素的表达式是参考答案:DA、*w[1]+1B、p++,*(p+1)C、w[2][2]D、p[1][1]第2题:若有说明:int i,j=7,*p=&i;,则与i=j;等价的语句是参考答案:BA、i= *p;B、*p=*&j;C、i=&j;D、i=* *p;第3题:设i是int型变量,f是float型变量,为了把100和765.12分别给i和f,用下面的语句:scanf("i=%d,f=%f",&i,&f);正确的输入是参考答案:BA、100<空格>765.12<回车>B、i=100,f=765.12<回车>C、100<回车>765.12<回车>D、x=100<回车>,y=765.12<回车>第4题:若fp是指向某文件的指针,且已读到该文件的末尾,则C语言函数feof(fp)的返回值是参考答案:BA、EOFB、1C、非零值D、NULL第5题:以下程序的输出结果是main(){int i,k,a[10],p[3];for (i=0;i<10;i++)a[i]=i;for (i=0;i<3;i++)p[i]=a[i*(i+1)];for (i=0;i<3;i++)k=p[i]*2;printf("%d\n",k);}参考答案:CA、10B、11C、12D、13第6题:C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是:参考答案:BA、地址传递B、单向值传递C、由实参传给形参,再由形参传回给实参D、由用户指定传递方式第7题:C语言中以追加方式打开一个文件应选择_______________参数参考答案:DA、“r”B、“w”C、“rb”D、“a”第8题:在C程序中,若对函数类型未加说明,则函数的隐含类型为_____。
参考答案:AA、intB、doubleC、voidD、char第9题:Break语句的正确的用法是参考答案:BA、无论在任何情况下,都中断程序的执行,退出到系统下一层。
B、在多重循环中,只能退出最靠近的那一层循环语句。
C、跳出多重循环。
D、只能修改控制变量。
第10题:当顺序执行了文件关闭操作时,fclose函数的返回值是:参考答案:CA、-1B、tureC、0D、1三、程序填空题第1题:设计一个程序完成以下功能:若从键盘输入英文字母,则原样输出;输入其他字符不理会,直到输入Q键结束。
]#include "stdio.h"main(){char ch;do{ch =____;if (____)break;else if(_____)putchar(ch);}while(1);}参考答案:getchar()参考答案:ch == 'Q'或ch == 'q'参考答案:ch >= 'a' && ch <= 'z'|| ch >= 'A' && ch <= 'Z'第2题:以下程序中,fun函数的功能是求3行4列二维数组每行元素中的最大值,放在数组br中,主函数完成输出3行的最大值元素,请填空。
void fun(int ar[][4],int *br){int I,j,x;for(I=0;I<3;I++){x=ar[I][0];for(j=1;j<4;j++)if(___) x=ar[I][j];____=x;}}void main(){int a[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}};int b[3],I;____;for(I=0;I<3;I++)printf("%4d",___);printf("\n");}请在左边文本框当中输入正确答案参考答案:a[I][j]>x请在左边文本框当中输入正确答案参考答案:br[I]请在左边文本框当中输入正确答案参考答案:fun(a,b)请在左边文本框当中输入正确答案参考答案:b[I] 第3题:根据下式计算s的值,要求精确到最后一项的绝对值小于10的-6次方。
#include <stdio.h>#include <math.h>void main( ){int flag = 1, t = 1;double s=0,item=1;____;____;while( fabs(item)>=1e-6 ){item = flag * 1.0 / t;s = s + item;____;t = t + 2;}printf ( "s = %f\n", s);}请在左边文本框当中输入正确答案参考答案:s=0请在左边文本框当中输入正确答案参考答案:item=1请在左边文本框当中输入正确答案参考答案:flag=-flag四、程序阅读题第1题:阅读程序,写出运行结果。
#include <stdio.h>void main(){ int a[8]={1,0,1,0,1,0,1,0}, I;for(I=2;I<8;I++)a[I]+=a[I-1]+a[I-2];for(I=0;I<8;I++)printf("%3d",a[I]);printf("\n");}A)、1 0 1 0 1 0 1 0 B)、1 0 2 2 5 7 13 20 C)、1 1 2 3 5 8 13 21D)、1, 0, 1, 0, 1, 0, 1, 0参考答案:B第2题:阅读下列程序,写出程序运行的输出结果.#include <stdio.h>pw( int x , int n){ int j , p=1 ;for(j=1 ; j<=n ; j++)p=p*x ;return(p) ;}void main( ){ int j;for(j=0 ; j<3 ; j++)printf("%d,%d,%d\n", j, pw(2, j), pw(-3, j)) ;}A)、0,1,11,2,32,4,9B)、0, 2, 31, 4, 92, 8, 27C)、0, 1, 11, 2, -32, 4, -9D)、0,1,11,2,-32,4,9参考答案:D第3题:阅读下列程序,写出程序运行的输出结果。
#include <stdio.h>void main( ){ char c1, c2 ;c1='a'+'6'-'2' ;c2='a'+'6'-'3' ;printf("%c,%c\n",c2,c1) ;}A)、d, e B)、a, b C)、4, 3 D)、程序错误,没有结果输出参考答案:A第4题:阅读下列程序,写出程序运行的输出结果。
#include <stdio.h>void main( ){ char *p;char s[ ]=”ABCD” ;for(p=s;p<s+4;p++)printf(“%c,%s\n”, *p,p);}A)、A,ABCDB,BCDC,CDD,DB)、A,ABCDB,BCDC,CDC)、A,ABCDB,BCDD)、A,ABCD参考答案:A第5题:阅读程序,写出运行结果。
#include <stdio.h>void main( ){ int a=1,s=0;switch(a){ case 1: s+=1;case 2: s+=2;default : s+=3;}printf("s=%d,",s);}A)、s=1 B)、s=3 C)、s=6 D)、s=0参考答案:C五、程序设计题第1题:三个整数a、b、c,由键盘输入,从大到小依次放入a,b,c中输出。
参考答案:#include<stdio.h>main(){int a,b,c,temp;printf("请输入3个整数:");scanf("%d,%d,%d",&a,&b,&c);if(a<b){temp=a;a=b;b=temp;}if(a<c){ temp=a;a=c;c=temp;}if(b<c){ temp=b;b=c;c=temp;}printf("%d,%d,%d",a,b,c);}第2题:输入一数组,元素个数为20,统计出其中的奇数和偶数,并分别放入两个数组中,并分别求出她们的和。
输入输出都应有相应的提示。
参考答案:#include<stdio.h>main(){int sum[20],nq[20],ne[20],j,k,l,sumq,sume;k=0;l=0;sumq=0;sume=0;for(j=0;j<20;j++){scanf("%d",&sum[j]);if(sum[j]%2==0){ne[k]=sum[j];sume=sume+sum[j];k++;}else{nq[l]=sum[j];sumq=sumq+sum[j];l++;}}printf("偶数序列为:");for(j=0;j<k;j++)printf("%3d",ne[j]);printf("%5d\n",sume);printf("奇数序列为:");for(j=0;j<l;j++)printf("%3d",nq[j]);printf("%5d",sumq);}第3题:打印出如下所示的杨辉三角形(要求打印出10行)。