厦门理工软件c语言程序设计A卷及答案
- 格式:doc
- 大小:74.50 KB
- 文档页数:10
1. 18 3 《C 程序设计》(A 卷)参考答案及评分标准一. 填空题(共15分,每空1分)1. ⑴ 有穷性 ⑵ 确定性2. ⑶ 单精度(或:float) ⑷ 双精度(或:double)3. ⑸ 相应正数的原码 ⑹最低位加14. ⑺ 485. ⑻ a ⑼ p6. ⑽ 二进制7. ⑾ #include “math.h ”8. ⑿ 编译 ⒀ 连接9. ⒁ 任意10. ⒂ 函数体以外二. 选择题 (共20分,每题2分)1. D2. D3. B4. A5. C6. B7. A8. C9. B 10. A三. 写出下列程序的运行结果(包括中间结果):(共15分,每题5分)四. 程序填空(共10分,每空1分)1. ⑴ c=c-32(或:c-=32) ⑵ c>=’A ’&&c<=’Z ’2. ⑶ i<N/2(或:i<=N/2) ⑷ a[N-i-1] ⑸ a[N-i-1]=temp3. ⑹ &a[i][j], &b[i][j] ⑺ a[i][j]+b[i][j] ⑻ printf(“\n ”)4. ⑼ k (或k!=0, 或k>0, 或k>=1) ⑽ k=k/10五. 编程 (共:40分,每题10分)1. # include “math.h ”main(){float x,y;scant(“%f ”,&x);if (x<0.0) y=1.0-x;else if (x<25.0) y=sqrt(x)+1.0else y=11.0-x/5.0;printf(“y=%f\n ”,y);}2. main()2. 12 I study hard tudy hard y hard ard3. 13577{int i,j,sum1;float sum2=0.0;for (i=1; i<=30; i++){for(sum1=0, j=1; j<=i; j ++)sum1=sum1+j;sum2=sum2+1.0/sum1;}printf(“sum=%f\n”,sum2);}3. # include "stdio.h"main(){ struct student{int no;char na[30];int sc[3];float ave;} s[30];FILE *fp;int i,j;if((fp=fopen("file1.txt","w"))==NULL){printf("\n can not open the file1\n"); exit(0);}for(i=0; i<30; i++){fscanf(fp,"%d %s %d %d %d", &s[i].no,s[i].na,&s[i].sc[0],&s[i].sc[1],&s[i].sc[2]);s[i].ave=(float)(s[i].sc[0]+s[i].sc[1]+s[i].sc[2])/3.0;fprintf(fp,"%d %s %d %d %d %7.1f\n",s[i].no,s[i].na,s[i].sc[0],s[i].sc[1],s[i].sc[2],s[i].ave); } fclose(fp);}4. main(){int a[4][5], max,i,j,l,m,t;for (i=0;i<4;i++)for(j=0;j<5;j++)scanf(“%d”,&a[i][j]);max=a[0][0]; l=0; m=0;for (i=0;i<4;i++)for(j=0;j<5;j++)if(a[i][j]>max) {max=a[i][j]; l=i; m=j}t=a[0][0]; a[0][0]=a[l][m]; a[l][m]=t;for (i=0;i<4;i++){for(j=0;j<5;j++)printf(“%d ”,a[i][j]);printf(“\n”); }}。
C程序设计期末复习思考题一、选择题:1 一个C语言程序是由______B___。
A)一个主程序和若干个程序组成B)函数组成C)若干过程组成D)若干子程序组成2已知各变量的类型说明如下:int i=8,k,a,b;unsigned long w=5;double x=1.42,y=5.2;则以下符合C语言语法的表达式是______D____。
A)a+=a-=(b=4)*(a=3) B) a=a*3=2C) x%(-3) D) y=float(i)3以下不正确的语句为___B_______。
A) if (x > y); B) if (x = = y) && (x != 0) x + = y;C) if (x < y) { x ++; y++;} D) if (x != y) scanf(“ %d ”,&x);else scanf(“ %d ”,&y);)4C语言中while 和do —whiloe循环的主要区别是_____A______。
A)do —while 的循环体至少无条件执行一次B)while 的循环控制条件比do—while 的循环控制条件严格C)do —while 允许从外部转到循环体内D)do —while 的循环体不能是复合语句5 下面程序应该是_____D___ (程序行左边的数字表示行号)1main( ) 5 for( i=0;i<3;i++) scanf( “%d”,&a[i]);2{ 6 for(i=1;i<4;i++) a[0] = a[0] + a[i];3int a[3]={0}; 7 printf(“%d\n”, a[0]);4int i; 8 }A)没有错误B)第3 行有错误C)第5 行有错误D)第6 行有错误6 以下程序有语法性错误,有关错误原因的正确说法是____________。
main( ){ int G=5,k;void prt_char( );……k=ptr_char(G);……}A)语句void ptr_char( ); 有错,它是函数调用语句,不能用void 说明B)变量名不能使用大写字母C)函数说明和函数调用语句之间有矛盾D)函数名不能使用下划线7若有以下定义,则对a数组元素正确引用的是___A_________。
2022年厦门理工学院公共课《C语言》科目期末试卷A(有答案)一、填空题1、与表达式x^=y-2等价的另一书写形式是_______。
2、结构化程序由________、________ 、________ 3种基本结构组成。
3、C语言的源程序必须通过【】和【】后,才能被计算机执行。
4、在C语言的赋值表达式中,赋值号左边必须是_______5、若有定义语句:int a=2,b=3;float x=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y的值为_______6、以下程序的运行结果是_______。
#include <stdio.h>int main(){char s[]="ab\'cdefg\",*p=s+1;printf("%c”,*(p++));printf("%s",p+2);return(0);}7、下面add函数的功能是求两个参数的和,并将和值返回调用函数。
函数中错误的部分是_______,改正后为_______。
void add(float a,float b){float c;c=a+b;return c;}8、设有一输入函数scanf("%d”,k);它不能使float类型变量k得到正确数值的原因是_______未指明变量k的地址和_______格式控制符与变量类型不匹配。
9、设有以下定义和语句,请在printf语句的_______中填上能够正确输出的变量及相应的格式说明。
union{int n;doublex;}num;num.n=10;num.x=10.5;printf("_______",_______);10、下面程序段的运行结果是_______。
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);二、选择题11、下面4个选项中,是合法转义字符的选项是( )。
c语言程序设计期末试题A(含答案)一、单项选择题(选择一个最佳答案,每题2分,共20分)1. 一个C程序的执行是从( )。
A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序的main函数开始,到本程序文件的最后一个函数结束D) 本程序文件的第一个函数开始,到本程序main函数结束2. 下列选项中,不能用作标识符的是( )。
A) _1234_ B) _1_2 C) int_2_ D) 2_int_3. 以下定义语句中正确的是( )。
A) char a='A'b='B'; B) float a=b=10.0;C) int a=10,*b=&a; D) float *a,b=&a;4. 设有以下定义:#define d 2int a=0; double b=1.25; char c=’A’;则下面语句中错误的是()。
A) a++; B) b++ C) c++; D) d++;5. 以下4个选项中,不能作为一条C语句的是( )。
A) {;} B) a=0,b=0,c=0; C) if(a>0); D) if(b==0) m=1;n=2;6. 有以下定义语句double a,b; int w; long c;若各变量已正确赋值,则下列选项中正确的表达式是( )。
A) a=a+b=b++ B) w%(int)a+b) C) (c+w)%(int)a D) w=a==b;7. 设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是( )。
A) p=1; B) *q=2; C) q=p; D) *p=5;8. 设有定义:int a,*pa=&a; 以下scanf语句中能正确为变量a读入数据的是( )。
A) scanf(“%d”,pa) ; B) scanf(“%d”,a) ;C) scanf(“%d”,&pa) ; D) scanf(“%d”,*pa);9. 若有说明:char *language[]={”FORTRAN”,”BASIC”,”PASCAL”,”JAVA”,”C”};则表达式*language[1]>*language[2]比较的是()。
2022年厦门理工学院公共课《C语言》科目期末试卷B(有答案)一、填空题1、假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。
请填空。
a+=_______;b=a-_______;a-=_______;2、在C语言中,输入操作是由库函数________完成的,输出操作是由库函数________完成的。
3、C语言源程序文件的后缀是;经过编译后,生成文件的后缀是;经过连接后,生成文件的后缀是4、在C语言中的实型变量分为两种类型,它们是_______和_______。
5、在C语言中,用关键字_______定义单精度实型变量,用关键字_______定义双精度实型变量,用关键字_______定义字符型变量。
6、请读程序段:int a=1,b=2;if(a&b)printf("***\n");else printf("$$ $\n");以上程序段的输出结果是_______。
7、鸡兔共有30只,脚共有90只,下面程序段是计算鸡兔各有多少只。
请填空。
for(x=0;x<=30;x++){y=30一x;if(_______)printf("%d,%d\n",x,y);}8、下面程序段的运行结果是_______。
int i=5;char c[6]="abcd";do{c[i]=c[i-1];}while(--i>0);puts(c);9、设有宏定义如下:#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);10、若想输出b数组的10个元素,则下面存在错误的程序行是_______。
封 线密《C 语言程序设计基础》课程期末考试试卷 ( A 卷)班级 考试形式 闭卷 考试时间 120 分钟考试学期 2020-2021学年第1学期 考试类型 考试 命题教师 题 号一 二 三 四 总分 分 值 30 20 25 25 100 得 分一、单项选择题(每小题2分,共30分)1.下列不属于C 语言基本数据类型的是( )。
A. intB. unionC. charD. double 2. 在一个C 程序中( )。
A .main 函数必须出现在所有函数之前B .main 函数可以在任何地方出现C .main 函数必须出现在所有函数之后D .main 函数必须出现在固定位置3. 以下不正确的C 语言标识符是 ( )。
A .AB3CB .a_bc C. _abc D .3ab_c4. 设x 、y 和z 是int 型变量,且x =3,y =4,z =5,则下面表达式中值为0是 ( )。
A .x&&y||x-y B. x <=y C. x||y+z&&y<z D. !((x <y)&&!z||1)5. 设有定义:struct a{long int c[4]; float d[3]; char f[16]; }a1;则printf("%d\n",sizeof(a1));的输出是( )。
A .44B .36C .12D .326. 已知一个二维数组int a[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};获取该数组中第二行第三列元素的语句表达正确的是( )。
A .a[2][3] B. a[2][4] C. a[1][2] D. a[3][2] 7. 设有:int a,*pa,*pb;int b[10] = { 0,1,2,3,4,5,6,7,8,9 };a=3;下列说法中不正确的是( )。
考 生 信 息 栏 系 专业 级 班级 姓名 学号装 订 线厦门理工学院试卷2010 -2011 学年 第 1 学期出卷负责人_ _审核人__ ____打印审核人_________课程名称C 语言程序设计基础(A 级)试卷卷别 A √ B □ 所有软件 专业 2010 级 班级 全部考试 方式闭卷 √ 开卷 □本试卷共 五 大题( 8页),满分100分,考试时间120分钟。
请在答题纸上作答,在试卷上作答无效。
一、单选题:(本题共20小题,每题1分,共20分)1. C 语言程序的执行,总是起始于 。
A) 程序中的第一条可执行语句 B) 程序中的第一个函数 C) main 函数 D) 包含文件中的第一个函数 2. 以下四项中属于C 语言关键字的是 。
A) CHAR B) define C) unsigned D) sum3. 用数组名作为函数的实参时,传递给形参的是 。
A) 数组的首地址 B)数组的第一个元素 C)数组中的全部元素 D)数组的元素个数 4. 下列选项中,正确的字符常量是__________ A)”a ” B) ‘\\’ C)”\\n ” D)3765. 下面选项中,均是不合法的用户标识符的选项是A)BA 、x_0、do B)float 、1a0、_Y C)x-y 、goto 、123 D)_123、tmp 、CHAR6. 如有定义变量语句 int a; 变量a 的存储类别是 。
A) auto B)register C)static D)extern7. 与代数式(x*y)/(u*v) 不等价的C 语言表达式是 。
A )x*y/u*vB )x*y/u/vC )x*y/(u*v)D )x/(u*v)*y8.假定x和y为double型,则表达式x=2,y=x+3/2的值是。
A)3.500000 B)3 C)2.000000 D)3.0000009.设以下变量均为int类型,则值不等于7的表达式是。
A)(x=y=6,x+y,x+1) B)(x=y=6,x+y,y+1)C)(x=6,x+1,y=6,x+y) D)(y=6,y+1,x=y,x+1)10.已有定义:int x=3, y=4, z=5; 则表达式!(x+y)+z-1 && y+z/2的值是。
A)6 B)0 C)2 D)111.为了避免嵌套的if-else语句的二义性,C语言规定else总是与组成配对关系。
A)缩排位置相同的if B)在其之前未配对的ifC)在其之前未配对的最近的if D)同一行上的if12.已知int a=1,b=2,c=3; 以下语句执行后a,b,c的值是。
if(a>b)c=a; a=b; b=c;A)a=1, b=2, c=3 B)a=2, b=3, c=3C)a=2, b=3, c=1 D)a=2, b=3, c=213.执行下列程序片段时输出结果是。
int x=5,y;y=2+(x+=x++,x+8,++x);printf(“%d”,y);A)13 B)14 C)15 D)1614.下面程序段int k=2;while (k=0) {printf(“%d”,k);k--;}则下面描述中正确的是。
A)while循环执行10次 B)循环是无限循环C)循环体语句一次也不执行 D)循环体语句执行一次15.以下程序输出结果是。
main ( ){ int x=1,y=0,a=0,b=0;switch(x) {case 1:switch (y) {case 0 : a++ ; break ;case 1 : b++ ; break ;}case 2:a++; b++; break;case 3:a++; b++;}printf(“a=%d,b=%d”,a,b);}A)a=1,b=0 B)a=2,b=1 C)a=1,b=1 D)a=2,b=2 16.下面程序的输出结果是。
main ( ){ int k=0,m=0,i,j;for (i=0; i<2; i++) {for (j=0; j<3; j++)k++ ;k-=j ;}m = i+j ;printf(“k=%d,m=%d”,k,m) ;}A)k=0,m=3 B)k=0,m=5 C)k=1,m=3 D)k=1,m=517.以下对一维整型数组a的正确说明是。
A)int a(10) ; B)int n=10,a[n];C)int n; D)#define SIZE 10scanf(“%d”,&n); int a[SIZE];int a[n];18.若有说明:int a[3][4]={0};则下面正确的叙述是。
A)只有元素a[0][0]可得到初值0B)此说明语句不正确C)数组a中各元素都可得到初值,但其值不一定为0D)数组a中每个元素均可得到初值019.以下正确的说法是。
A)用户若需要调用标准库函数,调用前必须重新定义B)用户可以重新定义标准库函数,如若此,该函数将失去原有定义C)系统不允许用户重新定义标准库函数D)用户若需要使用标准库函数,调用前不必使用预处理命令将该函数所在的头文件包含编译,系统会自动调用。
20.若有以下说明:int a[]={0,1,2,3,4,5,6,7,8,9},*p=a;则数值为4的表达式是A. *p+3B. *(p+4)C. *p+=3D. p+4 线订装考 生 信 息 栏 系 专业 级 班级 姓名 学号装 订 线二、填空题:(本题共10小题,每题2分,共20分)1. 设x=2.5,a=7,y=4.7, 则x+a%3*(int)(x+y)%2/4为 。
2. 一般地,调用标准字符或格式输入输出库函数时,文件开头应有以下预编译命令: 。
3. 将条件“y 能被4整除但不能被100整除,或y 能被400整除”写成逻辑表达式。
4. 函数的实参传递到形参有两种方式: 和 。
5. C 语言函数返回类型的默认定义类型是 。
6. 有以下程序#define SQUARE(x) x*x main (){int a=2,s ;s= SQUARE(a+1);printf (”%d\n ”,s ); }程序运行后的输出结果是 。
7. 有以下程序#include <stdio .h> main (){int a=1,b=0; if (!a ) b++;else if (a==0)if (a )b+=2; else b+=3;printf (”%d\n ”,b ); }程序运行后的输出结果是 。
8. 有以下程序#include <stdio .h> main (){int i,n[]={0,0,0,0,0}; for (i=1;i<=4;i++){n[i]=n[i-1]*3+1; printf (”%d ",n[i]);} }程序运行后的输出结果是 。
9. 有以下程序#include <stdio .h> main () {int y=10; while (y--);printf (”%d\n ”,y ); }程序执行后的输出结果是 。
10.有以下程序#include <stdio.h>void f(int *p);void main(){int a[5]={1,2,3,4,5},*r=a;f(r);printf(”%d\n”;*r);}void f(int *p){p=p+3;printf(”%d,”,*p);}程序运行后的输出结果是。
三、判断题:(本题共10小题,每题1分,共10分)1.如果函数定义出现在函数调用之前,可以不必加函数原型声明。
()2.静态变量如果定义的时候没有指定初值,则其初值为0。
()3.一个C程序的执行总是从该程序的main函数开始,在main函数最后结束。
()4.对几个变量在定义时赋初值可以写成:int a=b=c=3; ()5.C语言不允许不同类型的数据进行混合运算。
()6.switch语句内层break语句可以终止嵌套的switch,使最外层的switch结束。
()7.在实际编程中,while循环完全可以用for循环替换。
()8.语句scanf(“%d,%d”,&x,&y);的正确输入格式为:3,4<回车>。
()9.函数中的局部变量都是动态存储。
()10.如有数组定义语句:int a[10],则该数组最后一个元素为a[10]. ()四、程序改错题:(本题共1小题,5个错误,一个错误2分,共10分)下面程序实现从键盘输入一个20以内的整数n,,求n 的阶乘。
该程序有5处错误,导致程序无法编译或无法得出正确结果。
请指出错误所在行号,并给出该行正确的代码。
1.include <stdio.h>2.long factorial(int n)3.{4.int i;5.long m;6.for(i=1;i<=n;i++)7.m*=i;8.return m;9.}10.main11.{12.int n;13.scanf("%d",n);14.printf("%d!=%d\n",n,factorial(n));15.}五、编程题:(本题共3小题,分值见各题,共40分)1.编程实现:输入3个整数,要求按从大到小的顺序输出(10分)。
2.编程实现:从键盘输入一个正整数,写函数判定其是否是一个素数。
(15分)说明:i.素数指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。
ii.要求使用自定义函数,函数调用实现。
装3.编程实现:从键盘输入9个整数,组成3行3列的二元数组,找出每一列中的最大元素,并输出其行、列下标值。
(15分)订线考 生 信 息 栏 系 专业 级 班级 姓名 学号装 订 线厦门理工学院试卷答题纸2010 - 2011 学年 第 1 学期考试课程:程序设计基础 试卷卷别:A 卷(√)B 卷()题号 一 二 三 四 五 六 七 八 九 十 总分分数阅卷人一、单项选择题(本题共20小题,每题1分,共20分)1 2 3 4 5 6 7 8 9 10 C C A B C A A D C D 11 12 13 14 15 16 17 18 19 20 CBBCBBDDBB二 、填空题:(本题共10题,每题2分,共20分)1、 2.52、 #include <stdio.h>3、 (y%4==0&&y%100!=0)||(y%400==0)4、 值传递 、 址传递5、 整型(int )6、 57、 08、 1 4 13 409、 -1 10、 4 ,1三 、判断题:(本题共10小题,每题1分,共10分)1 2 3 4 5 6 7 8 9 10 TTTFFFTTFF四、程序改错题:(本题共1小题,5个错误,一个错误2分,共10分)请指出错误所在行号,并给出该行正确的代码。