C语言试题

发布 2024-01-02 08:45:16 阅读 2183

《计算机程序设计基础》(c语言)试题。

姓名专业班级。

使用班级:本科非计算机专业(理、工类)题号得分。一。二。

闭卷。四。

五。课程编号:1402011110答题时间:120分钟。总分。三。

第1页(共9页)

注:试卷中所有程序的运行环境为microsoft visual c++ 6.0。一、选择题(每小题1分,共20分)

卡的相应位置上,答在试卷上不得分。

得分。下列各题a)、b)、c)、d)四个选项中,只有一个选项是正确的,请将正确的选项填写在答题。

1、以下叙述中正确的是。

a)构成c程序的基本单位是函数。b)可以在一个函数中定义另一个函数。

c) main()函数必须放在其它函数之前。d)所有被调用的函数一定要在调用之前进行定义。2、以下选项中合法的用户标识符是。

a) longb) _2testc) 3dmaxd) 以下选项中不合法的数值常量是。

a) 011b) 1e1c) 8.0e0.5 d) 0xabcd4、下面程序运行后的输出结果是。#include <>void main()

int a=3; printf("%d",(a+=a-=a*a));

a) -6b) 12c) 0d)–12

5、设有定义inta;floatb;,执行scanf("%2d%f",&a,&b);语句时,若从键盘输入876 543.0《回车》,a和b的值分别是。

a) 876和543.000000b) 87和6.000000c) 87和543.000000d) 76和543.000000

学6、下面程序运行后的输出结果是。

#include <>籍。

号void main()

int i=1,j=2,k=3;

if(i++=1&&(j==3||k++=3)) printf("%d %d %d",i,j,k);

a) 1 2 3b) 2 3 4c) 2 2 3d) 2 3 37、下面程序运行后的输出结果是。#include <>void main()

int a=5,b=4,c=6,d=0;

printf("%d",d=a>b?(a>c?a:c):(b));

a) 5b) 4c) 6d) 08、下面程序运行后的输出结果是。#include <>void main()

a) 1b) 2c) 4d)死循环。

第2页(共9页)

9、若要求定义具有10个int型元素的一维数组a,以下定义语句中错误的是。a) #define n 10 b) #define n 5 c) int a[5+5]; d) int n=10,a[n];int a[nint a[2*n];

10、下面程序运行后的输出结果是。#include <>void main()

abcd) *

11、设有如下定义语句,以下各选项能正确定义结构体数组并赋初值的语句是。

typedef struct

int n; char c; double x;}std;

a) std tt[2]=,b) std tt[2]=;

c) struct tt[2]=,12、下面程序运行后的输出结果是。#include <>#include <>void main()

char a=how are\0 you"; int i,j;

i=sizeof(a); j=strlen(a); printf("%d,%d",i,j);}

a) 12,12b) 13,7c) 12,7d) 7,7

13、若有定义:int n=2,*p,*q; p=&n;q=p;,以下非法的赋值语句是。a) p=q;b) *p=*q;c) n=*q;d) p=n;14、设有以下声明和执行语句,表达式*(*p+2)+1)的值是。

int a[3][2]=,p)[2];p=a;

a) 20b) 30c) 60d) 4015、下面程序运行后的输出结果是。#include <>#define pt 3.5

#define s(x) pt*x*xvoid main()

int a=1,b=2; printf("%5.2f",s(a+b) )

a) 14.00b) 31.50c) 7.

50 d)程序编译有错误16、有函数定义int max(int a,int b) {及声明语句“int (*p)()欲使函数指针变量p指向函数max,正确的赋值语句是。

a) p=max; b) *p=maxc) p=max(a,b); d) *p=max(a,b);17、以下选项中正确的语句组是。

a) char s;s="bookb) char *s;s=;c) char s[10];s="bookd) char *s;s="book!";

第3页(共9页)

18、有如下声明语句,欲使指针变量p指向结构体变量data中的成员no,正确的赋值语句是。struct stu

int no;float **er;}data;int *p;

a) p=&no;b) p= p=& p=若有以下声明语句,sizeof(st_un)的值是。struct test

int m1; float m2;

union uu ua;}st_un;

a) 16b) 13c) 21d) 1120、调用函数strlen("abcd\0ef\0g")的返回值是。

a) 9b) 7c) 6d) 4

二、填空题(每空2分,共20分)

得分。请将每个空的正确答案写在答题卡本题【1】至【10】序号后的下划线上,答在试卷上不得分。1、符合结构化程序设计原则的三种基本控制结构是:

顺序结构、选择结构和【1】结构。2、数学表达式。

nxex对应的c语言表达式是【2】。

3、若有定义inta=2;double x=3.5,y=2.5;,则表达式(double)a+(int)x/(int)y的值是【3】。

4、若有定义int i=5,*p1=&i,**p2=&p1;,表达式**p2的值为【4】。5、以下程序运行后的输出结果是【5】。#include <>int f(int a)void main( )

int s[8]=,i,d=0;for(i=0;f(s[i]);i++)d+=s[i];printf("%d",d);}

6、以下程序运行后的输出结果是【6】。#include <>void main( )printf("a=%d,y=%d",a,y);}

第4页(共9页)

7、以下程序运行后的输出结果是【7】。#include <>int fib(int n)

if(n==1||n==2) return 1;else return(fib(n-1)+fib(n-2));void main()

printf("%d", fib(6));

8、以下程序运行后的输出结果是【8】。

#include <>void main();for(i=0;i<4;i++)printf("%c",*a[i]);

9、以下程序运行后的输出结果是【9】。

#include <>struct ord

int x,y; }dt[2]=;void main()

10、设a=1,b=2,c=3,d=4,则表达式:a三、阅读程序题(每小题4分,共24分)

得分。请将下列各程序的运行结果填写在答题卡的相应位置上,答在试卷上不得分。1、#include <>

void main()

int x=1,y=0,a=0,b=0;switch(x)case 2: a++;b++;break;case 3: a++;b++;

printf("a=%d,b=%d",a,b);}

第5页(共9页)

#include <>

void main()else printf("*printf("");

#include <>

int fact(int n)

void main()

#include <>

#define n 8

void inverse(int *b,int i,int j)}

void main()

int a[n]=,i;inverse(a,2,5);for(i=0;iprintf("%d,",a[i]);

第6页(共9页)

#include <>

struct stu;

void main()

struct stu a[3]=,struct stu *p;double sum=0;for (p=a;pscore[0];printf("**e=%6.2lf",sum/3);}

#include <>#include <>void main()

fprintf(fp,"%d",i);fprintf(fp,"%d",j);fclose(fp);

if((fp=fopen("d:\"))null)

fscanf(fp,"%d%d",&k,&n);printf("k=%d,n=%d",k,n);fclose(fp);}

四、程序填空题(每空2分,共20分)

得分。将每个空的正确答案写在答题卡本题【1】至【10】序号后的下划线上,答在试卷上不得分。1、以下程序中,函数prime的功能是判断正整数n是否为素数,若n是素数,函数返回值为1;否则,函数返回值为0。

第7页(共9页)

#include <>int prime(int n)

void main()

2、以下程序的功能是建立如右图所示的二维数组,并输出二维数组的下三角元素的值。

提示:矩阵中主对角线及其以下位置的元素称为下三角元素,本程序中下三角元素构成杨辉三角形。)

#include <>#define n 5

void main( )

1 2 10 0for(i=1;i1 3 3 10}

3、下列程序求100之内的自然数中奇数之和。

#include <>void main()

printf("s=%d ",s );

第8页(共9页)

4、以下程序在主函数中由键盘输入两个正整数,分别调用函数fun1( )和fun2( )实现求两个正整数的最大公约数和最小公倍数。#include <>

int fun1(int a,int b求a、b的最大公约数*/

int fun2(int a,int b,int x) /求a、b的最小公倍数*/void main()

5、下面的程序的功能是:利用指针统计一个字符串中,字母、空格、数字、及其它字符的个数,请填空。

#include<>void main()

int alpha,space,digit,other;char *p,s[80];

alpha=space=digit=other=0;printf("input string:");gets(s);

for(p=s;*p!='0';p++)

if((*p>='a'&&p<='z') p>='a'&&p<='z'))alpha++;else if(【9】)space++;else if(【10】)digit++;else other++;

printf("alpha:%d space:%d digit:%dother:%d ",alpha,space,digit,other);}

第9页(共9页)

五、程序设计题(每小题8分,共16分)

得分。将每个题目的正确答案写在答题卡本题的相应位置上,答在试卷上不得分。

1、编写程序,定义函数fun()的函数体。函数fun()的功能是:从5个红色球、8个黄色球和6个蓝色球中,任意选取10个球作为一组,每一组中的10个球必须包括红、黄、蓝三种颜色。

输出所有可能的选取方案,并将可选取的组数作为函数值返回。

规定:⑴所有的球除了颜色不同外,其余均相同;

选取方案输出格式示例:red=1,yellow=7,blue=2。

提示:在函数fun()中,i、j、k的值分别代表红色球、黄色球和蓝色球的个数,count的值代表可选取的组数。)

#include <>int fun()

int i,j,k,count=0;}

void main()

2、编写程序,定义函数sort()的函数体,函数sort()的功能是:对数组a中的n个元素,按值由小至大的顺序排序。

#include <>#define n 10

void sort(int a,int n) /对数组a中的元素按值由小至大排序*/{

void main()

int b[n]=,i;sort(b,n);

for (i=0;i<10;i++)printf("%d,",b[i]);

编程语言基础 C语言 试题A卷

山东铝业公司技工学校2018 2019学年第一学期。2017级计算机网络应用专业 编程语言基础 c语言 期末考试试题 a 满分为100分,请将全部答案均按题号顺序写在答题纸上 一 选择题 共10题,每题3分,共计30分 1 c语言是 的语言。a.面向对象 b.面向过程 c.面向实例 d.面向基础。2...

2019C语言试题A

2011 2012学年第二学期c语言期末考试卷答题纸 a卷 专业班级学号姓名。一 选择题 用铅笔把选中的方格涂黑 30 1 30分 二 填空题 25 2 50分 三 编程题 10 2 20分 1 编写函数int frinum long s 2 long n 实现以下功能 找到2n范围内的所有亲密数对...

C语言C卷

一 填空题 本题共5小题,每小题2分,共30分 填空题 每小空 1 分,共 10 分 1.利用tc或vc 6.0编辑c语言源程序,源程序的后缀为生成的可执行程序后缀为。2.计算表达式b 25 3 3后,b的值为。3.c语言规定 标识符只能由三种字符组成。语言可以用来实现循环的结构化语句是。5.数组名...