有关c语言静态数据类型的题目,C语言程序设计题目和解答-07.doc

C语言程序设计题目和解答-07

一、判断题?(24分)

1. 函数的递归调用不过是一个函数直接地调用它自身。2分

2. 在c语言中,在main函数中定义的变量称为全局变量。2分

3. 静态变量和外部变量都是全局变量,它们的存储是静态的。2分

4. 静态局部变量只在本函数内可用。2分

5. 静态外部变量只在本文件内可用。2分

6. 变量根据其作用域的范围可以分作局部变量和全局变量.2分

7. 任何数组在使用时必须先定义。2分

8. 如果想使一个数组中全部元素的值为1,可以写成 int a[10]={1*10};2分

9. 如果定义数组int b[6]={1,2,3,4};则b[6]为0。2分

10. int n=10; int a[n];则数组a有10个元素。2分

11. int b[][3] = {1,2,3,4,5,6,7} ,表示数组b是3行3列的数组。2分

二、选择题?(36分)

1.根据下面函数print的定义,选出调用函数print(5378)的值是( )。???[A] 2分

void print(long n)

{

if (n==0) return ;

else{

print(n/10);

printf("% d", n%10);

return ;

}

}

A. 5 3 7 8?????B. 8 7 3 5?????C. 3 5 7 8?????D. 8 7 5 3

2.根据下面函数f,选出f(f(3))的值是( )。???[C] 2分

int f(int x)

{

static int k=0;

x=x+k;

k--;

return x;

}

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

3.如果在函数中定义一个变量,有关该变量作用域正确的是( )。???[A] 2分

A. 只在该函数中有效?????B. 在该文件中有效?????C. 在本程序中有效?????D. 为非法变量

4.下列叙述中,正确的叙述项是( )。???[B] 2分

A. 定义函数时,必须要有形参B. 函数中可以没有return语句,也可以有多条return语句C. 函数f可以用f(f(x))形式调用,这种调用形式是递归调用D. 函数必须有返回值

5.下列说法正确的是( )???[D] 2分

A. 在C语言中,可以使用动态内存分配技术定义元素个数可变的数组B. 在C语言中,数组元素的个数可以不确定,允许随机变动C. 在C语言中,数组元素的数据类型可以不一致D. 在C语言中,定义了一个数组后,就确定了它所容纳的具有相同数据类型元素的个数

6.以下能正确定义一维数组的选项是( )。???[D] 2分

A. int a[5]={0,1,2,3,4,5};B. char a={′A′,′B′,′C′};C. int a[5]="0123";D. char a[]={′0′,′1′,′2′,′3′,′4′,′5′,′\0′};

7.若有定义语句:int a[10];则下列对a中数组元素正确引用的是( )。???[A] 2分

A. a[10/2–5]?????B. a[10]?????C. a[4.5]?????D. a(1)

8.能对一维数组正确初始化的语句是( )。???[A] 2分

A. int a[6]={6*1}?????B. int a[6]={1,,,3}?????C. int a[6]={}?????D. int a[6]=(0,0,0)

9.下面对数组定义正确的是()???[C] 2分

A. int b[];?????B. int b[n],n=5;?????C. int b[10/2];?????D. int b[4.8];

10.假设int型变量占两个字节的存储单元,若有定义:

int x[10]={0,2,4};

则数组x在内存中所占字节数为______。???[D] 2分

A. 3?????B. 6?????C. 10?????D. 20

11.下列程序运行后的输出结果是______。???[D] 2分

Main()

{int n[3],t,j,k;

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

n[t]=0;

k=2;

for(t=0;t

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

n[j]=n[t]+1;

printf("%d",n[1]);}

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

12.有以下程序

main()

{ int p[7]={11,13,14,15,16,17,18}, i=0,k=0;

while(i<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言程序设计 实 验 报 告 实验题目 实验七 函数 实验目的 掌握函数定义的方法; 掌握函数实参与形参的对应关系,以及传递的方式。 掌握函数的嵌套调用和递归调用的方法; 掌握全局变量和局部变量、动态变量、静态变量的概念和使用方法; 学习对多文件的程序的编译和运行。 实验内容和步骤 1. 写一个判别素数的函数。在主函数输入一个整数,输出是否是素数的信息。 #include<stdio.h> void main() {int prime(int); int m,flag=1; char c; while(flag) {printf("Enter the m:\n"); scanf("%d",&m); if(prime(m)) printf("%d 是素数!",m); else printf("%d 不是素数!",m); printf("\nContinue or not?(Y&N)\n"); scanf(" %c",&c); if(c=='Y') flag=1; else flag=0; } } int prime(int m) {int i,flag=1; for(i=2;i<m && flag;i++) if(m%i==0) flag=0; return flag; } 2、用一个函数来实现将一行字符串中最长的单词找出。此行字符串从主函数传递 给该函数。 (1)把两个函数放在同一个程序文件中,作为一个文件进行编译和运行。#include<st dio.h> #include<string.h> void main() {int word(char); int longest(char[]); int i; char string[80]; printf("Enter a line:\n"); gets(string); printf("The longest word is:\n"); for(i=longest(string);word(string[i]);i++) putchar(string[i]); putchar('\n'); } int word(char c) {if(c>'a'&&c<'z' "" c>'A'&&c<'z') return 1; else return 0; } int longest(char string[]) {int len=0,length=0,flag=1,place=0,point,i; for(i=0;i<=strlen(string);i++) if(word(string[i])) if(flag) {point=i;flag=0;} else len++; else {flag=1; if(len>length) {length=len;place=point;} len=0; } return place; } (2)、把两个函数分别放在两个程序文件中,作为两个文件进行编译。 注:下图为文件内容(文件名分别为8__10.c和file2.c) 3、用递归法讲一个整数n转换成字符串。 #include<stdio.h> void main() {void convert(int); int m; printf("Enter int m:\n"); scanf("%d",&m); convert(m); putchar('\n'); } void convert(int m) {int i; if((i=m/10)!=0) convert(i); printf("%c ",m%10+'0'); } 4、求两个整数的最大公约数和最小公倍数。 (1)不用全局变量,分别用两个函数求最大公约数和最小公倍数。两整数在主函数中输 入,传递给函数1,以求出最小公倍数,然后再与两个整数一起作为实参传给函数2,以 求出最小公倍数,返回主函数输出最大公约数和最小公倍数。 #include<stdio.h> void main() {int great_commom(int x,int y); int low_common(int m,int n,int a); int a,b,m,n; //用m,n,a,b分别代表两个数及其最大公约数和最小公倍数 printf("Please enter two numbers:\n"); scanf("%d %d",&m,&n); a=great_commom(m,n); b=low_common(m,n,a); printf("最大公约数为:%d;\n最小公倍数为:%d。\n",a,b); } int great_commom(int x,int y) {int i,s; for(i=1;i<=(x>y?y:x);i++) if(x%i==0 && y
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值