《C系列-实践相关》C语言八
一、选择题
1. 设有定义“int n1=0,n2,*p=&n2,*q=&n1;”
,以下賦值语句中与“n2=n1;”语句等价的是( A
)。
A. *p=*q; B. P=q;
C. *p=&n1; D. p=*q:
2. 以下定义语句中正确的是(C
)。
A. char a=’A’ b=’B’; B. float a=b=10.0;
C. int a=10,*b=&a; D.float a,b=&a;
*3. 若有语句“int a=4,point=&a;”,下面均代表地址的一组选项是( D
)。
A. a,point,&a B. &a,&a,point
C. &point,point,&a D. &a,&point,point
4. 若有说明语句“int i,x[3][4];”,则不能将x[1][1]的值赋给变量i的语句是( C
)。
A. i=((x+1)+1); B. i=x[1][1];
C. i=((x+1)); D. i=(x[1]+1);
**5. 设有定义“int m=2,n=5,p=&n;”,则语句“m=p;”的结果是( B
)。
A. 指针p指向m;
B. 变量m的值变为5;
C. 变量n的值变为2;
D. 指针p指向m,同时变量m的值变为5;
*6. 若有定义“int a[]={1,3,5,7,9},p=a;”,结果为7的表达式是(A
)。
A. *(p+3); B. *(p+4);
C. *p+3; D. *p+4;
7. 下面程序段的运行结果是( B
)。
char str[]=”ABC”,p=str;
printf(“%d\n”,(p+2));
A. 0
B.字符C的ASCⅡ码值
C.字符C的地址
D.字符C
8. 已知函数定义为
float fun1(int x,int y)
{
float z;
z=(float)x/y;
return (z);
}
若主调函数中有“int a=1,b=0;”语句,可以正确调用此函数的语句是( D
)。
A. printf(” %d”,fun1(a,b) ) ;
B. printf(” %d”,fun1(&a,&b) ) ;
C. printf(” %d”,*a,*b) ) ;
D.调用时发生错误
二、填空题
- “*”称为 取内容 运算符,“&”称为
取地址
运算符。 - 在语句“int a=3,p=&a;”中,*p的值是
3
。 - 在语句“int *pa[5];”中,pa是一个具有5个元素的指针数组,每个元素是一个
int
类型的指针。 - 若两个指针变量指向同一个数组中的不同元素,则可以进行减法运算和
比较
运算。 - 存放某个指针 的地址值的变量称为指向指针的指针,即
二级
指针。 - 设“int a[10],*p=a;”,则对a[3]的引用可以是
p[3](下标法)和 *(p+3) (地址法)
。 - 若a是已定义的整型数组,再定义一个指向a的存储首地址的指针p的语句是
int *p=a
。 - 若有声明“char a[15]=”Windows-9x”;”,则语句“printf(“%s”,a+8);”的输出结果为
9x
。
三、写出下列程序的运行结果
1.
#include<stdio.h>
void main()
{int a,*p1,*p2;a=10;p1=&a;p2=p1;printf("%d,%d,%d\n",a,*p1,*p2);*p1=11;printf("%d,%d,%d\n",a,*p1,*p2);
}
运行结果:10,10,10
11,11,11
2.
#include<stdio.h>
void main()
{char str[]="a7234.405",*p;int s=0;for(p=str;*p!='\0';p++)if(*p>='0'&&*p<='9')s+=*p-0x30;printf("s=%d\n",s);
}
运行结果:s=25
3.
#include<stdio.h>
void main()
{int i,a[]={0,1,2},*p[3];for(i=0;i<3;i++)p[i]=&a[i];printf("%d,%d\n",*p[2],**(p+1));
}
运行结果:2,1
4.
#include<stdio.h>
int func(int *a,int *b)
{static int m=0,i=2;i+=m+1;m=i+*a+*b;return m;
}
void main()
{int k=4,m=1,p;p=func(&k,&m);printf("%4d",p);p=func(&k,&m);printf("%4d\n",p); }
运行结果: 8 17
5.
#include<stdio.h>
void main()
{int i;char aa[][3]={'a','b','c','d','e','f'};char (*p)[3]=aa;for(i=0;i<2;i++)if(i==0)aa[i][i+1]=**(p++);printf("%c\n",**p);
}
运行结果: d
四、程序填空题
1.以下程序求数组a中的最小值。
#include<stdio.h>
void main()
{int a[]={7,4,2,3,10};int m,k,*ptr;m=a[0];ptr= a ;for(k=1;k<5;k++)m=(*(ptr+k)<m)? *(ptr+k) :m;printf("%d\n",m);
}
运行结果:2
2. 以下程序求数组a中下标为偶数的元素之和。
#include<stdio.h>
void main()
{int a[]={5,3,7,2,1,5,4,10};int s=0,k;for(k=0;k<8; k=k+2 )s+=*( a+k );printf("%d\n",s);
}
运行结果:17
3. 以下 程序实现从10个数中找出最大和最小值。
#include<stdio.h>
int max,min;
void find_max_min(int *p,int n)
{int *q;max=min=*p;for(q=p;q< p+n ;q++)if( max<*q )max=*q;else if(min>*q)min=*q;
}
void main()
{int i,num[10];printf("输入10个数:");for(i=0;i<10;i++)scanf("%d",&num[i]);find_max_min( num ,10);printf("最大值=%d,最小值=%d\n",max,min);
}
运行:输入10个数: 12 4 5 7 8 13 15 12 54 32
结果:最大值=54,最小值=4
五、编写程序
1.编程将从键盘输入的每个单词的第一个字母转换为大写字母,输入时各单词必须用空格隔开,用“.”结束输入。
#include<stdio.h>
#include<string.h>
char zhuanhua(char c) /*定义将小写字母转化为大写字母的函数*/
{ char C;if(c>='a'&&c<='z') /*是小写字母就转化,不是则原样返回*/C=c-32;else C=c;return C;
} /*此函数防止有标点符号或者第一个字母本身是大写字母*/
void main()
{ char a[100],*p=a;int i=1,j;a[0]=' ';p++; /*为方便下面的if语句,初始化a[0]为空格*/printf("\n入一字符串:");for(;;){ scanf("%c",p);if(*p=='.')break;p++;i++;}a[i]='\0';for(j=1;j<i;j++){ if(a[j-1]==' '&&a[j]!=' ') /* 第一个字母前面可能有很多空格*/a[j]=zhuanhua(a[j]); /*调用转化函数,使其变为大写字母*/}p=a;while(*p){printf("%c",*p);p++;}putchar('\n');
}
运行:入一字符串:turbo c and borland c.
结果:Turbo C And Borland C.
2. 编写函数fun,其功能是从字符串中删除指定的字符。(同一字母的大、小写按不同字符处理)。例如,程序执行时,在“turbocandborlandc++”中删除从键盘输入的字符“n”,则字符串变为“turbocadborladc++”如果输入的字符在字符串中不存在,则字符串照原样输出。
源程序:
#include<stdio.h>
void fun(char *str,char c)
{ char *p;for(p=str;*p!='\0';p++)if(*p!=c) *str++=*p;*str='\0';
}
void main()
{ char str[80],c;printf("\n请输入一字符串:");gets(str);printf("\n输入要删除的字符:");scanf("%c",&c );fun(str,c);puts(str);
}
运行:请输入一字符串:turbocandborlandc++
输入要删除的字符: n
结果:turbocadborladc++
3. 输入一个字符串,内含数字和非数字字符,如gs423cd156b7896>?df12345,将其中连续的数字作为一个整数,依次存放到一数组a中,即423放在a[0]、156放入a[1],……。最后统计共有多少个整数,并输出这些数。
源程序:
#include"stdio.h"
#define max 1042
void main()
{ float a[max];
int j,t,i=0;
char b[max],*p=b;
printf("输入串b[]=");
gets(b);
while(*p!='\0'){ a[i]=0;while(((*p)<='9'&&(*p)>='0')&&((*p)!='\0')){ t=(int)(*p-48);a[i]=a[i]*10+t;p++;if((*p)>'9'||(*p)<'0') i++;}p++;}
for(j=0;j<i;j++)printf("\t%.0f",a[j]);
printf("\n串中包含%d个整数。\n",i);
}
运行:输入串b[]=gs423cd156b7896>?df12345
结果: 423 156 7896 12345
串中包含4个整数。
4. 编程将八进制数转换为十进制数。
源程序:
#include<stdio.h>
void main()
{ int n;char *p,a[6];p=a;printf("输入一个八进制数:");gets(p);n=0;while(*p!='\0'){n=n*8+*p-'0'; p++;}printf("\n%s的十进制形式为:%d\n",a,n);
}
运行:输入一个八进制数:1234
结果:1234的十进制形式为:668
*5. 两个字符串连接程序,要求将两个字符串中的字符按字母顺序排列。
源程序:
#include<stdio.h>
#include<string.h>
void main()
{ char a[]="acegikm";char b[]="bdfhjlnpq";char c[80];int i=0,j=0,k=0;while(a[i]!='\0'&&b[j]!='\0') {if(a[i]<b[j]){c[k]=a[i];i++;}else c[k]=b[j++];k++;}c[k]='\0';if(a[i]=='\0')strcat(c,b+j);else strcat(c,a+i);printf("字符串a:%s\n字符串b:%s\n",a,b);printf("连接后的字符串为:%s\n",c);
}
*6. 从键盘输入10个数,从中找出最大的数。
源程序:
#include<stdio.h>
void main()
{ char a[10],*p=a;
int i=0,j=0;for(i=0;i<10;i++) scanf("%d",&a[i]);
for(j=0;j<10;j++)if(*p<*(a+j))p=a+j;printf("%d\n",*p);
}
*7. 将一个数组中的元素按逆序存放。
源程序:
#include<stdio.h>
#define N 7
void main()
{ int a[N]={12,9,16,5,7,2,1};int k,s,*p=a,*q;
printf("原数组:\n");for(k=0;k<N;k++)printf("%4d",a[k]);for(q=p+N-1;p<q;p++,q--){s=*p;*p=*q;*q=s;}
printf("\n逆序后数组:\n");
for(k=0;k<N;k++) printf("%4d",a[k]);printf("\n");
}
《C系列-实践相关》C语言八相关推荐
- 《C系列-实践相关》C语言十
一.选择题 1.以下文件函数中,用于关闭文件的函数是( D ). A. fopen B. fprintf C. fscanf D .fclose 2. 需要以写方式打开一个名为myfile.txt的文 ...
- 《C系列-实践相关》C语言九
一.选择题 1. 设有以下定义语句,下列叙述中不正确的是( B ). struct ex { int x; float y; char z; }example; A.struct是结构体类型的保留字 ...
- 《C系列-实践相关》C语言一
一.选择题 1. 一个C语言程序的执行是( A ) A. 从程序的main函数开始,到main函数结束的 B. 从程序的第一个函数开始,到本程序的最后一个函数结束的 C. 从程序的main函数开始,到 ...
- C语言入门系列一之C语言介绍、环境配置和运行执行
鉴于书本和教材文字过多.又难懂的缺点,所以我打算写一系列通俗移动的C语言入门教程,让大家在短时间内学习和掌握C语言,以及遇到C语言的一些问题该如何得到快速的解决.希望这些系列的教程,能够帮助到大家!该 ...
- 大型企业网络配置系列课程详解(八) --VoIP的配置与相关概念的理解
大型企业网络配置系列课程详解(八) --VoIP的配置与相关概念的理解 试验背景: 伴随着电路交换网络的发展,PSTN(公共交换电话网络)的普及已经给人类带来了前所未有的方便,在现实生活中只要有P ...
- 【C、C++系列-10】C语言实现:百钱买百鸡问题
[C.C++系列-10]C语言实现:百钱买百鸡问题 1. 问题 百钱买百鸡问题:我国古代数学家张丘建在<算经>一书中曾提出过著名的"百钱买百鸡"问题.该问题叙述如下:鸡 ...
- 植物大战僵尸变态辅助开发系列教程(E语言实现和VC6实现)(下)
植物大战僵尸变态辅助开发系列教程(E语言实现和VC6实现)(下) 36.全屏秒杀 37.秒杀实现 37.PVZ聚怪 38.种植CALL的查找与调用 39.OpenProcess错误 40.错误:con ...
- 植物大战僵尸变态辅助开发系列教程(E语言实现和VC6实现)(上)
植物大战僵尸变态辅助开发系列教程(E语言实现和VC6实现)(上) 11.E语言第一课(基址+偏移的读写) 12.E语言第二课(字节集的写入) 13.E语言第三课(快捷键的使用) 14.E语言第四课(调 ...
- SpringBoot实现1对1、1对多、多对多关联查询——基于SpringBoot和Vue的后台管理系统项目系列博客(十八)
系列文章目录 系统功能演示--基于SpringBoot和Vue的后台管理系统项目系列博客(一) Vue2安装并集成ElementUI--基于SpringBoot和Vue的后台管理系统项目系列博客(二) ...
最新文章
- mysql元数据死锁日志_这个未修复的MySQL 5.7死锁Bug,你知道么?
- ubuntu下终端提示符设置
- Codeforces Round #365 (Div. 2) D. Mishka and Interesting sum (离线树状数组+前缀xor)
- matlab中GUIDE的UItable居中方法
- python 并发编程 多线程 目录
- 在caffe中添加样本扩增的功能
- 拨码开关控制数码管的数字显示_VHDL编程
- python动态爱心曲线_使用matplotlib动态刷新指定曲线实例
- 操作系统-页式虚拟存储器管理系统设计
- vs2015 professional 密钥
- Es6 let const var的区别
- 教你itunes电脑版怎么下载
- windows 下 tomcat 开机自启动
- html5拖拽表单设计器,可视化表单设计器拖拽生成表单(原创)
- C++实现Cholesky分解
- 表中数据的更改量保存视图
- 大写金额换算器iOS版源代码
- win10分辨率不能调整_笔记本电脑如何连接投影仪?MAC OS/Win10/7笔记本和投影仪连接方法...
- python阶乘的代码_python编码阶乘
- 鸿蒙实训(基于智能硬件学习)第二期
热门文章
- jump Server开源堡垒机的部署以及资产管理
- board/freescale/mx6ull_alientek_emmc/Kconfig:15: ‘endif‘ in different file than ‘if‘
- ios文件扩展名_安卓JY Share | 还在为担心文件上传成为 base.apk,这个应用帮你解决...
- SkeyeVSS智慧塔吊可视化监控系统 助力落实建筑安全生产解决方案
- 一篇文章搞懂 HDFS 的 Archive 到底是什么
- scud的jvalidation
- 天正安装autocad启动失败_天正T20-V2.0版本,在WIN764位系统下运行AUTOCAD2007 不成功,提示AUTOCAD启动失败...
- linux如何获取软件下载地址
- 达梦数据库-搭建DMHS双向同步
- 2022.8.20 科大讯飞秋招笔试