打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C语言程序设计试题

一、选择题:(20分,每题2分)

1.以下不正确的C语言标识符是( )。

A. ABC B. abc C. a_bc D. ab.c

2.C程序是由 构成的。

A. 主程序与子程序

B. 主函数与若干子函数

C. 一个主函数与一个其它函数

D. 主函数与子函数

3.以下说法中正确的是: 。

A. 在C语言中,实参与其对应的形参各占独立的存储单元;

B. 在C语言中,实参与其对应的形参共占同一个存储单元;

C. 在C语言中,只有当实参与其对应的形参同名时,才共占同一个存储单元;

D. 在C语言中,形参是虚拟的,不占存储单元。

4.设n=3;则n++的结果是( )。

A. 2 B. 3 C. 4 D. 5

5.设整型变量n=10,i=4,则赋值运算n%=i+1执行后,n的值是( )。

A. 0 B. 1 C. 2 D. 3

6.凡是函数中未指定存储类别的局部变量其隐含的存储类别是( )。

A. 自动(auto) B. 静态(static) C. 外部(extern) D. 寄存器(register)

7.在while(x)语句中的x与下面条件表达式等价的是: 。

A. x= =0 B. x= =1 C. x!=1 D. x!=0

8.若有以下说明和语句:

struct worker

{

int no;

~char *name;

}work, *p=&work;

则以下引用方法不正确的是( )。

A. work.no B. (*p).no C. p->no D. work->no

9.以下对二维数组进行正确初始化的是( )。

A. int a[2][3]={{1,2},{3,4},{5,6}};

B. int a[][3]={1,2,3,4,5,6};

C. int a[2][]={1,2,3,4,5,6};

D. int a[2][]={{1,2},{3,4}};

10.二维数组a有m列,则在a[i][j]之前的元素个数为: 。

A) j*m+i

B) i*m+j

C) i*m+j-1



二、给出下列程序的运行结果:(20分,前四题每题3分,后两题每题4分)

1.#include<stdio.h>

main()

{

int i=16,j,x=6;

j=i+++1;

x*=i=j;

printf(“%d,%d\n”,j,x);

}

运行结果是:

2.#include<stdio.h>

#include<math.h>

main()

{

int a=1,b=4,c=2;

float x=10.5,y=4.0,z;

z=(a+b)/c+sqrt((double)y)*1.2/c+x;

printf(“%f\n”,z);

}

运行结果是:

3.#include<stdio.h>

main()

{

int a,b,c,d;

a=c=0;

b=1;

d=20;

if(a) d=d-10;

else if(!b)

if(!c) d=25;

else d=15;

printf(“d=%d\n”,d);

}

运行结果:

4. main()

{

int i=10;

switch(i){

case 9: i+=1;

case 10: i+=1;

case 11: i+=1;

}

printf(“%d”,i);

}

运行结果:

5.#include<stdio.h>

main()

{

int a[]={1,2,3,4},i,j,s=0;

j=1;

for(i=3;i>=0;i--)

{

s=s+a[i]*j;

j=j*10;

}

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

}

运行结果:

6.func(int x)

{ x=20; }

main()

{

int x=10;

func(x);

printf(“%d”,x);

}

运行结果:

三、阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。(20分,每空2分)

1.已知能被4整除而不能被100整除的或者能被400整除的年份是润年,则判断某一年是否是润年的程序如下:

main()

{

int year,leap;

scanf(“%d”,&year);

if( )

leap=1;

else leap=0;

if( ) printf(“是润年”);

else printf(“不是润年”);

}

2.将100至200间不能被3整除的数输出:

main()

{

int n;

{

if(n%3==0) ;

printf(“%d ”,n);

}

}

3.判断m是否是素数

#include <math.h>

main()

{

int m,i,k; scanf(“%d”,&m); k=sqrt(m);

for(i=2;i<=k;i++) if(m%i==0) ;

if(i>=k+1) printf(“%d is a prime number\n”,m);

else printf(“%d is not a prime number\n”,m);

}

4.给定一3*4的矩阵,求出其中值最大的元素的值,及所在的行列号。

main()

{

int i,j,row=0,colum=0,max;

static int a[3][4]={{1,2,3,4}{9,8,7,6}{10,-10,-4,4}}; ;

for(i=0;i<=2;i++)

for(j=0;j<=3;j++)

if(a[i][j]>max) {

max=a[i][j];

;

;

}

printf(“max=%d,row=%d,colum=%d\n”,max,row,colum);

}

5. 下面函数的功能是将两个字符串s和t连接起来。

char *conj(char *s, char *t)

{

char *p=s;

while(*s) ;

while(*t)

{

*s= ;

s++;

t++;

}

*s=’\0’;

}

四、编程(40分)

-41.计算1-1/2+1/3-1/4+„+1/99-1/100+„,直到最后一项的绝对值小于10为止。(13分)

2.输入一行字符,分别统计求出其中英文字母、空格、数字和其他字符的个数并输出结果。(13分)

3.任意从键盘输入10个整数,按从小到大的顺序排序,并输出结果。(14分)



说明:请将答案写在答题纸的相应题号后面!!!!!

一、填空题:(24分 每空1.5分)

1.已知:int *p,a; 则语句 p=&a;中的运算符&的含义是( 1 )。

2.凡在函数体内没有明显存储类别说明的变量是( 2 )。

3.已知: struct

{ int k;

char c;

float a;}test; 则sizeof(test)的值是(3 )。

4.程序填空:

(1)下面的程序是main函数利用函数abcd来交换main中的两个变量的值。

# include <stdio.h>

main()

{float x=10,y=20;

abcd( 4 );

printf(“%f,%f”,x,y);

}

abcd(x,y)

( 5 );

{float temp;

temp=( 6 );

( 7 );

( 8 );

}

(2)下面的程序是使用冒泡法对输入的10个数据从小到大排序。排好序的10个数分两行

输出。2 2 2 2 2 2 2

#include <stdio.h>

main()

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
全国计算机等级考试二级公共基础知识课后习题及答案1
2023年计算机C语言专升本测试卷(共八卷)及答案
C语言----期末考试题
snprintf函数说明
C指针函数与函数指针
简要说明C语言中指针函数与函数指针的区别
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服