C语言(指针)单元练习二

1有以下程序:

#include <stdio.h>

void fun( int *a, int i, int j)

{ int t;

if(i<j) { t=a[i]; a[i]=a[j]; a[j]=t;

fun(a,++i,--j);  }  }

main()

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

fun(a,0,5);

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

printf("%d ",a[i]); return; }

执行后输出结果是______。A

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

2以下语句的输出结果是______。B

  char s[]="\t\ \chinese\ \girl\n";

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

A. 12   B.15  C. 13    D. 14

3有以下程序:

#include <stdio.h>

void main()

{ char *s[]={"one","two","three"},*p;

p=s[1];

printf("%c,%s\n",*(p+1), s[0]); }

执行后输出结果是______。C

A. n, two         B. t, one         C. w, one        D. o, two

4若已知说明语句:int a, s[3][3]; 则不能将s[2][1]的值赋给变量a的语句是______。D

A. a=s[2][1];   B.a=*(*(s+2)+1);  C. a=*(s[2]+1);   D. a=*(*(s+2)); 

5以下程序的执行结果是______。C

  #include <stdio.h>

  void main()

  {  int  i,*p;

     p=&i;

     *p=8;

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

}

A. i为不定值 B. i=0

C. i=8 D.程序有错误

6以下程序:

#include <stdio.h>

char fun(char *p)

{ if(*p>='A'&&*p<='Z')

    *p-='A'-'a';

    return *p;}

main()

{ char s[80],*p=s;

   gets(s);

   while(*p)

   {*p=fun(p);

    putchar(*p);

    p++;}

   return;}

当输入BIG BIG WORLD回车,则输出结果是______。C

A. big big WORLD B. BIG BIG world

C. big big world D. BIG BIG WORLD

7以下程序的运行结果是______。C

#include <stdio.h>

void abc(char *p)

{  int i, j;

 for(i=j=0; *(p+i)!='\0'; i++)

     if(*(p+i)<'n')

     {   *(p+j)=*(p+i);

         j++;  }

 *(p+j)='\0'; }

main()

{  char str[]="morning";

     abc(str);

 puts(str); return; }

A. morig B. morning       C. mig          D. or

8设int x []={4,2,3,1},q,*p=&x[1];则执行语句q=(*--p)++后,变量q的值为 ______。A

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

9有以下程序:

#include <stdio.h>

#include <string.h>

void main()

{  char str[][20]={"Hello","Beijing"},*p=str;

printf("%d\n",strlen(p+20)); }

程序运行后的输出结果是______。C

A.0             B.5             C.7             D.20

10定义compare(char *s1, char *s2)函数,以实现比较两个字符串大小的功能,在下划线处应填入的是______。B

#include <stdio.h>

compare(char *s1, char *s2)

{  while(*s1&&*s2&& _______ )

     {  s1++;

        s2++; }

     return *s1-*s2;  }

main()

{  printf("%d\n", compare("abCd", "abc"); return; }

A. *s1!=*s2 B. *s1==*s2 C. *s1=*s2 D. s1!=s2

11如下程序的执行结果是_______。A

#include <stdio.h>

void main()

{  int a[]={2,4,6,8},*p=a,i;

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

       a[i]=*p++;

 printf("%d\n",a[2]); }

A.6             B. 8             C. 4             D. 2

12以下程序的输出结果是______。D

#include <stdio.h>

void main()

{ int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}, *p[4],i;

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

p[i]=&a[i*3];

printf("%d\n",p[3][2]); }

A. 输出项不合法                B. 6

C. 8                            D. 12

13若已有定义int (*p)(); 则指针p______。B

A. 代表函数的返回值            B. 指向函数的入口地址

C. 表示函数的类型              D. 表示函数返回值的类型

14以下程序段的输出结果是______。D

int **pp,*p,a=10,b=20;

pp=&p;p=&a;p=&b;

printf("%d,%d\n",*p,**pp);

A.10,20         B.10,10           C.20,10        D. 20,20

15阅读以下函数:

fun(char *s1,char *s2)

{ int i=0;

while(s1[i]==s2[i] && s2[i]!='\0') i++;

return (s1[i]=='\0' && s2[i]=='\0');  }

此函数的功能是______。C

A.将s2所指字符串赋给s1。

B.比较s1和s2所指字符串的大小,若s1比s2的大,函数值为1,否则函数值为0。

C.比较s1和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0。

D.比较s1和s2所指字符串的长度,若s1比s2的长,函数值为1,否则函数值为0。

16以下程序的运行结果是______。D

#include <stdio.h>

void fun(char *s);

main()

{  static char str[]="123";

 fun(str);  return;}

void fun(char *s)

{  if(*s)

     {  fun(++s);

        printf("%s\n", --s); }  }

A. 3 B. 123       C. 1           D. 3

   32    12          12              23

   321    1          123              123

17以下程序的输出结果是______。D

#include <stdio.h>

void main()

{ int a[]={1,2,3,4,5,6},*p;

p=a;

*(p+3)+=2;

printf("%d,%d\n",*p,*(p+3)); }

A. 0,5          B. 1,5           C. 0,6            D. 1,6

18执行以下程序段后,a的值是______。B

  static int s[]={6,8,2,5,4,9,1,3};

  int a=0,i;

  for(i=1;i<8;i+=2)

  a+=*(s+i);

A. 13          B.25           C. 15         D. 不确定

19 有以下程序:

#include <stdio.h>

void fun(char *a, char *b)

{ a=b; (*a)++; }

main()

{ char c1='A',c2='a',*p1,*p2;

p1=&c1; p2=&c2; fun(p1,p2);

printf("%c%c\n",c1,c2); return;  }

程序运行后的输出结果是______。A

A.Ab           B.aa             C.Aa            D.Bb

20在说明语句:int *f();中,标识符f代表的是______。D

A. 一个用于指向整型数据的指针变量。

B. 一个用于指向一维数组的行指针。

C. 一个用于指向函数的指针变量。

D. 一个返回值为指针型的函数名。

21有如下语句说明:

1. char(*ptr)[5];   2. int *fip();      3. int (*pfi)();    4. int **pfpi;

正确的说法是______。B

A.第1个不合法  B.都合法        C.第3个不合法  D.第4个不合法

22以下程序的输出结果为______。D

  static char s[]="language";

  char *p;

  p=s;

  while(*p)

  printf("%c",*p-32);

  p++;

A. LANGUAGE    B. LANG   C. language     D. 陷入死循环

23有以下程序段:

#include <stdio.h>

void main()

{  int a=5,*b,**c;

c=&b; b=&a;

…… }

程序在执行了c=&b;b=&a;语句后,表达式:**c的值是______。C

  1. 变量a的地址  B.变量b中的值  C.变量a中的值  D.变量b的地址

24若有定义char *language[]={"FORTRAN", "BASIC", "PASCAL", "JAVA", "C"}; 则language[2]的值是______。B

A. 一个字符   B. 一个地址   C. 一个字符串   D. 不定值

25以下程序的运行结果是______。D

#include <stdio.h>

void sub(int *x, int y, int z)

{  *x=y-z; }

main()

{  int a, b, c;

     sub(&a, 10, 5);

 sub(&b, a, 7);

 sub(&c, a, b);

     printf("%d,%d,%d\n", a, b, c); return; }

A. 10,-2,5      B. 10,5,7      C. 10,-2,7      D. 5,-2,7

判断

1 《缺失》

2内存单元间接访问是直接根据变量名存取变量的值。N

3int *p[3];定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素。N

4以下程序:

#include <stdio.h>

void main()

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

           int *p1,*p2,num;

       p1=&a[0];   p2=&a[3];   num=p2-p1;

           printf("num=%d\n",num); }

输出结果为num=2。N

5当指针p指向数组a的首址后,由于p[i]和a[i]都能引用数组元素,所以这里p和a是等价的。N

6数组名代表数组的起始地址。Y

7当两个指针指向同一数组时,两个指针相减的差即为两个指针相隔的元素个数。Y

8各个变量定义为:int i;char c,*s;float f,g;

则表达式 *(s+i)+(int)f和 *s+(int)c均为整型。Y

9以下程序:

#include <stdio.h>

void swap(int *,int *);

main()

{  int a=3, b=8;

           swap(&a, &b);

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

void swap(int * x , int * y)

{  int temp=*x;  *x=*y;   *y=temp;  }

输出结果为:a=3,b=8。N

10指针变量本身也是一种变量,它存放各种类型数据的地址。Y

填空

1以下程序的运行结果是___________。1 3 5 7 9

#include <stdio.h>

main ( )

  {  static int a[10],i;             

     for (i=0;i<10;i++)  a[i]=i+1;

     for (i=0;i<10;i=i+2)  printf("%d ",*(a+i)); return;} 

2以下函数的功能是删除字符串s中的所有数字字符,请填空。s[i]<'0'|| s[i]>'9' 或 !(s[i]>='0'&&s[i]<='9')

void dele(char *s)

{  int n=0,i;

for(i=0; s[i]; i++)

if (___________ )

s[n++]=s[i];

s[n]= '\0' ;  }

3定义int a[]={1,2,3,4,5},*p=a; 表达式*++p的值是___________。2

4下面程序是判断输入的字符是否中心对称,(如“xyzzyx”和“xyzyx”都中心对称),请填空。p2--

#include <stdio.h>

#include <string.h>

main()

{  char s[100],*p1,*p2;   int n;

gets(s);

n=strlen(s);

p1=s;

p2= s+n-1  ;

while(p1<p2)

if (*p1!=*p2) break;

else {p1++; ___________ ;}

if (p1<p2) printf("NO\n");

else printf("YES\n"); return;}

5以下程序的执行结果是___________。3,4,5,

#include <stdio.h>

void main()

{  int a[5]={3,4,5,6,7};   int i,*p;

for (p=a;p<(a+3);p++)  printf("%d,",*p); }

6若有以下程序:

#include <stdio.h>

int f(int x, int y)

{  return (y-x)*x; }

main()

{  int a=3,b=4,c=5,d;

d = f(f(3,4),f(3,5));

printf("%d\n",d); return; }

执行后输出结果是___________。9

7以下程序的fun函数用于统计字符串s中元音字母(a,A,e,E,i,I,o,O,u,U)的个数,请填空。==*s

#include <stdio.h>

fun(char *s)

{  char a[]="aAeEiIoOuU", *p;

     int n=0;

     while( *s!='\0' )

     {  for(p=a; *p; p++)

          if(*p ___________ )

          {  n++;

             break; }

        s++;  }

     return n;  }

main()

{  char str[255];

     gets(str);

     printf("元音字母的个数为: %d\n", fun(str)); return; }

8以下程序的执行结果是___________。5,2

#include <stdio.h>

void main()

{  int a[2],*p=a;

*p=2;

p++;*p=5;

printf("%d,",*p);

p--;

printf("%d\n",*p); }

9若有定义:int a[3][2]={2,4,6,8,10,12};则*(a[1]+1)的值是___________。8

10以下程序的执行结果是___________。i=10,j=2

#include <stdio.h>

void main()

{  int i,j,*p,*q;

i=2;j=10;

p=&i;q=&j;

*p=10;*q=2;

printf("i=%d,j=%d\n",i,j); }

11以下程序段的输出结果是___________。4

  float a[8]= {1,2,3,4,5,6,7,8};

  float *p1,*p2;

  int b;

  p1=&a[3];

  p2=&a[7];

  b=p2-p1;

  printf("%d\n",b);

12执行以下程序段后,指针变量p所指对象的值为____________。3

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

  int *p;

  p=a;

  p++;

  p+=6;

  p--;

  p-=3;

13若有以下定义和语句:

int a[4]={0,1,2,3},*p;

p=&a[2];

则*--p的值是___________。1

14以下程序的执行结果是___________。1,2,3,4,5,

#include <stdio.h>

void main()

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

int i;

for (i=0;i<5;i++)  printf("%d,",*(a+i)); }

15当程序输入0 -5 3时,程序依次输出哪三个数? ___、___、___。-5 0 3

#include <stdio.h>

#define SIZE 3

void swap(int *a,int *b);

main()

{  int data[SIZE];

int i,j;

for(i=0;i<SIZE;i++)  scanf("%d",&data[i]);

for(i=0;i<SIZE-1;i++)

for(j=i+1;j<SIZE;j++)

if(data[i]>data[j])  swap(&data[i],&data[j]);

for(i=0;i<SIZE;i++)  printf("%d ",data[i]); return; }

void swap(int *a,int *b)

{  int temp;

temp=*a;*a=*b;*b=temp;  }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/744078.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前后端交互理解 简易表白墙(servlet)

前后端交互理解 简易表白墙&#xff08;servlet&#xff09; 文章目录 前后端交互理解 简易表白墙&#xff08;servlet&#xff09;后端核心内容前后端交互接口约定后端代码展示 上期介绍过 Servlet API &#xff0c;本篇文章目的是借助 servlet 做出一个完整的网站。在一个网站…

工作随记:oracle重建一张1T数据量的大表

文章目录 一、删除测试表二、重命名旧表&#xff1a;三、验证&#xff1a;四、检查alert日志和昨天到今天的统计信息任务收集是否正常 一、删除测试表 #xshell登录用户hthis用户连接登录处理&#xff1a; sqlplus ht/"123456" sqlplus ht/"123456"10.8.5.…

Docker 搭建 PaddleOCR

转自PaddleOCR docker模式 - 简书 目的: 公司要放弃第三方的ocr工具(日语),需要自己搭建训练一套,这篇是搭建 图片要标出文字的选取框 因为是日文所以ocr有专门的工具,只需要文字坐标就好如图 日文的账票需要加密一下 我得环境是 Ubuntu 22.04.1 LTS 1,下载代码 cd /hom…

AI-线性回归模型

线性回归应用场景 房价预测&#xff0c;通过分析房地产市场的历史数据&#xff0c;如房屋大小、位置、建造年份等因素&#xff0c;线性回归可以帮助预测未来房价的走势。 销售额预测&#xff0c;企业可以利用线性回归模型来预测产品的销售额&#xff0c;这通常涉及到产品价格、…

科研三维模型高精度三维扫描服务3d逆向测绘建模工业产品抄数设计

三维抄数技术在科研三维模型的应用已经日益广泛&#xff0c;其高精度、高效率的特点使得科研工作者能够更快速、更准确地获取和分析数据。这一技术的核心在于通过专业的三维扫描仪对实物进行高精度测量&#xff0c;再将这些数据转化为三维数字模型&#xff0c;为后续的研究提供…

QT c++ 双精度数拆分和组合 Tool

本文描述QT c的双精度数拆分和合并&#xff0c;即双精度浮点数拆为四个16位无符号整数以及将四个16位无符号整数组合为双精度浮点数。 开发平台&#xff1a;win10QT6.2.4 MSVC2019 64 bit 在本文的最好列出了代码和可执行文件打包下载链接&#xff08;可直接使用&#xff09;…

Challenge 4 - OSCP A

文章目录 wp141142140143144145wp 141 dirsearch扫描发现db目录,访问后得到一个sql文件。 里面可以看到用户名和密码 INSERT INTO `admin` (`id`, `username`, `password`, `firstname`, `lastname`, `photo`, `created_on`) VALUES (1, nurhodelta, $2y$10$fCOiMky4n5hCJx…

Mysql 死锁案例1-记录锁读写冲突

死锁复现 CREATE TABLE t (id int(11) NOT NULL,c int(11) DEFAULT NULL,d int(11) DEFAULT NULL,PRIMARY KEY (id),KEY c (c) ) ENGINEInnoDB DEFAULT CHARSETutf8;/*Data for the table t */insert into t(id,c,d) values (0,0,0),(5,5,5),(10,10,10) 事务1事务2T1 START…

linux 模拟shell

&#x1f493;博主CSDN主页:麻辣韭菜-CSDN博客&#x1f493;   ⏩专栏分类&#xff1a;http://t.csdnimg.cn/G90eI⏪   &#x1f69a;代码仓库:Linux: Linux日常代码练习&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习更多Linux知识   &#x1f51d;&#x1f5…

BUU [FBCTF2019]RCEService

BUU [FBCTF2019]RCEService 开题&#xff0c;要求以json格式输入命令。 无任何信息泄露&#xff0c;源码如下&#xff1a; <?phpputenv(PATH/home/rceservice/jail);if (isset($_REQUEST[cmd])) {$json $_REQUEST[cmd];if (!is_string($json)) {echo Hacking attempt de…

阿里云第一次面试记录

java多态&#xff1f; 多态表示一个对象具有多种的状态&#xff0c;具体表现为父类的引用指向子类的实例 Fu f Zi z(); 多态是同一个行为具有多个不同表现形式或形态的能力。 多态就是同一个接口&#xff0c;使用不同的实例而执行不同操作 特点&#xff1a; 对象类型和引用类型…

Css基础——精灵图(sprites)和字体图标

1、精灵图 1.1、精灵图的由来 一个网页中往往会应用很多小的背景图像作为修饰&#xff0c;当网页中的图像过多时&#xff0c;服务器就会频繁地接收和发送 请求图片&#xff0c;造成服务器请求压力过大&#xff0c;这将大大降低页面的加载速度。 因此&#xff0c;为了有效地减…

搭建Hadoop集群

一、前言 虚拟机&#xff08;Virtual Machine&#xff09;指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。 虚拟机是在一些开发测试工作中常常需要用到的功能&#xff0c;常见的虚拟机…

白话-MVCC如何工作

MySQL中的MVCC机制主要在以下情况下起作用&#xff1a; 使用支持MVCC的存储引擎&#xff1a;MVCC主要是MySQL的InnoDB存储引擎中实现并发控制的一种方式&#xff0c;只有当使用InnoDB作为表的存储引擎时&#xff0c;MVCC机制才会生效。 非串行化事务隔离级别&#xff1a;MVCC在…

一文掌握mysql中的查询语句

目录 1. 聚合查询1.1 聚合函数1.2 GROUP BY子句1.3 HAVING 2. 联合查询2.1 内连接2.2 外连接2.3 自连接2.4 子查询2.5 合并查询 1. 聚合查询 1.1 聚合函数 常见的统计总数、计算平局值等操作&#xff0c;可以使用聚合函数来实现&#xff0c;常见的聚合函数有&#xff1a; 函…

读书笔记:<<上瘾>>

上瘾的四个步骤: 第一个叫触发&#xff0c; 第二个叫行动 第三个叫多变的酬赏&#xff0c; 第四个叫投入 我们首先一定会提升用户的终身价值。一个用户用一次还是用一辈子&#xff0c;价值是完全不一样的。 第二个就是你能够获得这个完全不同的灵活收益。比如说像我们刚刚说的…

【构建部署_Docker介绍与安装】

构建部署_Docker介绍与安装 构建部署_Docker介绍与安装Docker介绍Docker安装CentOS安装DockerCompose 构建部署_Docker介绍与安装 Docker介绍 Docker 是一个基于go语言开发的开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的容器中&#x…

基于MPC模型的自动驾驶控制总结---参考学习链接以及常规知识--simulink mpc和adapter mpc的关系和区别

1&#xff0c;mpc 2&#xff0c;adapter mpc 3&#xff0c;参考链接&#xff1a; 微信文章&#xff1a;简析MPC及其实践&#xff08;二&#xff09;simulink实践 MPC模型预测控制&#xff08;6&#xff09;–MPC与无人驾驶轨迹跟踪&#xff0c;以及mpc和adapter mpc的区别

QT 如何防止 QTextEdit 自动滚动到最下方

在往QTextEdit里面append字符串时&#xff0c;如果超出其高度&#xff0c;默认会自动滚动到QTextEdit最下方。但是有些场景可能想从文本最开始的地方展示&#xff0c;那么就需要禁止自动滚动。 我们可以在append之后&#xff0c;添加如下代码&#xff1a; //设置编辑框的光标位…

Java_9最大连续1的个数

最大连续1的个数 给定一个二进制数组 nums &#xff0c; 计算其中最大连续 1 的个数。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,0,1,1,1] 输出&#xff1a;3 解释&#xff1a;开头的两位和最后的三位都是连续 1 &#xff0c;所以最大连续 1 的个数是 3. 示例 2: 输入…