广工C语言试题与答案 doc_第1页
广工C语言试题与答案 doc_第2页
广工C语言试题与答案 doc_第3页
广工C语言试题与答案 doc_第4页
广工C语言试题与答案 doc_第5页
已阅读5页,还剩4页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、试卷代号:6111 A卷程序设计语言期末试卷(试卷总分:100分,考试时间:120分钟,答案写在答卷纸上)一、单项选择题(每题2分,共40分)1组成C程序的基本单位是C。A)表达式与语句B)若干文件C)函数D)main函数2有关以下函数的哪些说法是正确的_B_。 int add( int x;int y) z=x+y; return z; A)此函数能单独运行B)此函数存在语法错误C)此函数通过main函数能调用D)此函数没有语法错误3下列数据中,为字符的是_D_。A)'AB'B)"A"C)HowD)'A'24下列表达式没有错误的是_C_。i

2、nt x,*p;A)5.0%2B)x+1=5C)&pD)&(x+1)5任何复杂的程序,都是由_C_构成的。A)分支结构、顺序结构、过程结构B)循环结构、分支结构、过程结构C)顺序结构、循环结构、分支结构D)循环结构、分支结构6以下选项中,合法的语言关键字是_C_。A)integerB)CharC)shortD)Long7若有说明语句:int y4=0,0,0,0,0,0; 则正确的叙述是_。A)数组y的每个元素都可得到初值0B)二维数组y的行数为1C)该说明等价于int y04=0;D)有元素y00至y05可得到初值,其余元素均得不到初值08若有以下变量说明和数据的输入方式,则

3、正确的输入语句为_。变量说明:float x1,x2;数据的输入方式:4.52<回车> 3.5<回车>A)scanf(“%f,%f”,&x1,&x2);B)scanf(“%f%f”,&x1,&x2);C)scanf(“%3.2f,%2.1f”,&x1,&x2);D)scanf(“%3.2f%2.1f”,&x1,&x2);9已知:int a,*p=&a; 则为了得到变量a的值,下列错误的表达式为_C_。A)p0B)*pC)&*aD)*&a10若有定义:int b5;则以下对b 数组元素

4、的正确引用是_。A)*&b5B)b+2C)*(*(b+2)D)*(b+2)11设有int x,y; 以下语句判断x和y是否相等,正确的说法是该语句_B_。if (x=y) printf(" x is equal to y."); A)语法错B)不能判断x和y是否相等C)编译出错D)能判断x和y是否相等12以下有关switch语句的正确说法是_B_。A)break语句是语句中必须的一部分B)在switch 语句中可以根据需要使用或不使用break语句C)break语句在switch 语句中不可以使用D)在switch 语句中的每一个case都要用break语句13若用

5、数组名作为函数调用时的参数,则实际上传递给形参的是_D_。A)数组元素的个数B)数组的第一个元素值C)数组中全部元素的植D)数组首地址14若主调用函数为double型,被调用函数定义中没有函数类型说明,而return语句中的表达式为float型,则被调用函数返回值的类型是_B_。)float 型)int型C)double型D)类型错误15以下叙述正确的是_D_。A)函数的定义和函数的调用均不可以嵌套B)函数的定义和函数的调用均可以嵌套C)函数的定义可以嵌套,但函数的调用均不可以嵌套D)函数的定义不可以嵌套,但函数的调用均可以嵌套16凡是在函数中未指定存储类别的局部变量,其隐含的存储类别是_C_

6、。A)静态(static)B)外部(extern)C)自动(auto)寄存器(register)17以下有关宏替换的叙述不正确的是_A_。A)宏名必须用大写字母表示B)宏替换不占用运行时间C)宏名不具有类型D)宏替换只是字符替换18下列对字符串的定义中,错误的是 A 。A)char str5= "abcde"B)char str = "abcde"C)char *str ="abcde"D)char str = 'a', 'b', 'c', 'd', 'e'

7、;, '0'19说明语句“int(*p)( ); ”的含义是_C_ 。A)p是一个指向一维数组的指针变量B)p是指针变量,指向一个整型数据C)p是一个指向函数的指针,该函数返回一个int型数据D)以上都不对20C语言中结构体类型变量在程序执行期间_A_。A)所有成员一直驻留在内存中B)只有一个成员驻留在内存中C)部分成员驻留在内存中D)没有成员驻留在内存中二、程序阅读题(每题3分,共30分)1写出以下程序的运行结果。#include<stdio.h> void main()int num=0; while (num+<=2); printf("%d

8、",num); 32写出以下程序的运行结果。#include<stdio.h>void main()int a =1,3,5,7,9; int y=1,x,*p; p=&a1; for(x=0; x<3; x+) y+=*(p+x); printf("%dn",y); 163阅读以下程序,写出程序的功能。#include<stdio.h>void main()int a10=2,4,0,-5,10,6,-8,9,6,7; int i,s=0,count=0; for(i=0; i<10; i+)if(ai>0) s

9、+=ai,count+; else continue; printf ("s= %d , count=%dn", s ,count); 4阅读以下函数,写出此函数的功能。void fun(char A ,int n)char tmp; int k; for (k=0; k<n/2; k+)tmp=Ak; Ak=An-k-1; An-k-1=tmp; 5阅读以下程序,写出此程序的功能。#include<stdio.h>void main()char ch; int c=0,s=0,n=0,other=0; while (ch=getchar()!='

10、n')if (ch>='a'&&ch<='z')|(ch>='A'&&ch<='Z') c+; else if (ch=' ') s+; else if (ch>='0'&&ch<='9') n+; else other+; printf("Char:%dnSpace:%dnNumber:%dnOther:%dn",c,s,n,other); 6下列程序有2个文件组成,写出

11、运行结果。/* file 1 */#include <stdio.h>int x=20;int y=20;void func_add(void)y=10+x;x*=2;void main()extern void func_sub(); /* 声明一个外部函数 */x+=5;func_add();func_sub();printf( "x=%d; y=%dn", x, y);/* file 2 */extern int x; /* 声明一个外部变量 */void func_sub()x-=5; 7阅读下面的程序,写出它的运行结果。#include<stdi

12、o.h>long func(int m)long s;if (m=1) s=1;else s=m+func(m-1); return(s);void main() long y;y=func(4);printf( "%2d",y);8若输入一个整数15,写出以下程序的运行结果。#include <stdio.h>int sub(int a);void main()int a,e10,c,i=0;scanf("%d",&a);while (a!=0)c=sub(a);a=a/2;ei=c;i+;for(;i>0;i-) pr

13、intf ("%d", ei-1);int sub(int a)int c;c=a%2;return(c);9写出下面程序的运行结果。#include <stdio.h>func(int a3) int i,j,sum=0;for (i=0;i<3;i+)for(j=0;j<3;j+)if(i=j) sum=sum+aij;return(sum);void main()int a33=1,3,5,7,9,11,13,15,17,sum;sum=func(a);printf("sum=%dn",sum);10写出以下函数的功能。vo

14、id fun1( char *s1, const char *s2 ) while ( *s1 != '0' ) +s1; for ( ; *s1 = *s2; s1+, s2+ ) ; 三、程序填空题(每空2分,共20分)1以下程序对输入的1000以下的整数,求出其相应的个位数、十位数和百位数。#include<stdio.h>void main()int x,a,b,c; doprintf("输入一个1000以下的整数:"); scanf("%d",&x); printf("n"); while

15、( (1) ); a=x/100; b=(x-a*100)/10; c= (2) ; printf("%d的个位数是%d,十位数是%d,百位数是%dn",x,c,b,a); 2以下程序完成对键盘输入的正整数求最大值和最小值,输入负数时循环结束。请填写缺少的语句。#include<stdio.h>void main()int i,j,n,max,min,a100; for(i=1; i<=100; i+)scanf("%d,",&ai); if(ai<0) (3) ; n=i-1; min=max=a1; for(j=2;

16、j<=n; j+)if( (4) ) max=aj; if( (5) ) min=aj; printf("n=%dtmax=%dtmin=%dn",n,max,min); 3以下函数的功能是删除字符串s中的数字字符,请填写缺少的语句。void delnum(char s)int i,j;for( i=0,j=0;si!='0'i+)if ( si<'0' (6) si>'9') sj=si; (7) ; sj= (8) ; 4以下程序用来求数组全部元素的和,请填写缺少的语句。#include<stdio

17、.h>void main( )int a =0,1,2,3,4,5,6,7,8,9;int s=0 , i, *p;p= (9) ;for (i=0; i<10; i+) (10) ;printf("sum=%d", s);四、编程题(每题5分,共10分)1(5分)编写程序,计算s=1+2+3+.+99+100。2(5分)编写程序,输出100以内的所有素数(即只能被1和自身整除的数)。试卷代号:6111 A卷程序设计语言期末试卷答案一、单项选择题(每题2分,共40分)12345678910CBDCCCABCD11121314151617181920BBDBDCAACA二、程序阅读题(每题3分,共30分)13 6x=45; y=35 2167 103求数组a中所有正数的和及正数的个数。 811114将字符数组按逆序存放。 9sum=275从键盘输入一行字符,输出字母、数字、空格和其它字符的个数。 10将字符串s2连接到字符串s1后三、程序填空题(每空2分,共20分)x>=1000|x<=-1000|x-a*100-b*10或x%10j+break0aj>maxaaj<mins+=*(p+i)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论