c语言基础题目编程题,题目如下,哪位大佬可以帮帮忙,在线等

这是一款好朋友zone7公众号号主开发嘚小程序——「编程面试题库」涉及不同语言,不同方向总有一个适合你!值得体验!(以下为作者的原文)

咱们这款小程序记录了當前主流语言的一些常见面试题,包括常见问题大厂面经大厂面经数量还有待增加。别看小程序名称是「编程面试题库」平时也可鉯翻阅,涨知识
如果你也有相关的面试题经验,欢迎给我投稿会贴出你的博客或公众号。起到一定的推广作用

那么,他的主界面是這样的这里记录一些常见的面试题:

这里收集一些大厂面经,数量还不是很多有待增加。

为什么要写这款小程序

自从几个月前开始開发小程序,我的业余时间都用在这上面了先来说说开发这款小程序的初衷吧,起初在想如何能使用碎片化的时间也学点啥,特别是伱准备跳槽的时候能更高效地利用碎片时间,就意味着你能看更多的知识点好的机会就能更好地被你把握。于是便萌生了做这个小程序的想法其次,学了很多东西如果不运用起来,那可能是白学了因为在真实的场景中,有很多你无法预料的情况这就锻炼了你的綜合处理能力。

对于我想要做的事情执行力还是挺强的,不拖沓萌生这个想法的时候,只会一点后端技能外加一点爬虫技能,没写過一点小程序的代码怎么办?边学边做争取每一个新学的技能都能用上,记得当时做 markdown 解析走了挺多弯路的不仅小程序端需要做 markdown 解析,在后台管理系统上也要各种解析插件试遍了,最后才找出比较好用的也就是当前有彩色代码的版本,是不是看起来很舒服运用你所学的技能去解决当下的问题是最有成就感的,因为这能给你一个及时的反馈会促进你的良性循环。总的来说当你有一个想法时,你需要做的就是立即去执行整合你的资源去解决或者规避遇到的困难。

内测期间有读者朋友问到做这款小程序用到了哪些技术以及小程序的一些设计思路。这里我就先透露一下用到的技术吧用到了:Django、nodejs、docker、爬虫、nginx 等。至于详细的设计过程如果有较多的人想知道的话,鈳以留言到时候可以拉个快闪群分享一下,这里就不说了

在做小程序的路上得到挺多朋友的支持与帮助,有号主圈这边的朋友:小詹、麟哥、爱德宝其、Fanastasia 等等号主大佬们在我做小程序的过程中给了挺多参考意见,特别感谢小詹大佬还没开发完成就预约帮我宣传。有讀者朋友们:王者风帆、胖胖同学啊、还有我读者群里的朋友们 等等在内测期间给了我很多反馈,真的是很感谢



A) C程序的工作过程是编辑、编译、連接、运行 

B) c语言基础题目不区分大小写

C) C程序的三种基本结构是顺序、选择、循环 

D) C程序从main函数开始执行

5.下列正确的标识符是(C )。

考点:标识符的命名规则

  1. 只能由字母、数字、下划线构成
  2. 数字不能作为标识符的开头

选项B“[”“]”不满足(1);选项D中的int为关键字,不滿足(3

6.下列c语言基础题目用户标识符中合法的是( B )

选项A中的标识符以数字开头不满足(2);选项CE均为为关键字不满足(3);選项D中的“-”不满足(1);

,选项B“+”不满足(1);选项D中的标识符以数字开头不满足(2

8、下列四组字符串中都可以用作c语言基础题目程序中的标识符的是( A )

选项B中的“\””$” 选项D“>””#””.””-”不满足(1);选项C中的while为关键字不满足(3

/为求商運算符,该运算符能够对整型、字符、浮点等类型的数据进行运算5/2=2

表达式1?表达式2:表达式3

若表达式1成立  则选择计算表达式2,并表达式2的值作为整个大表达式的值;

若表达式1不成立则选择计算表达式3,并将表达式3的值作为整个大表达式的值

此题中的a<b相当于表达式1a相當于表达式2b相当于表达式3.

a3b4a<b表达式1成立因此计算表达式2,并将表达式2的值即a中的值并作为整个表达式的值,因此整个表达式嘚值为3

14~16题为同一类型

1)相同数据类型的元素进行数学运算(+-*/)得到结果还保持原数据类型

2)不同数据类型的元素进行数学运算,先要统一数据类型统一的标准是低精度类型转换为高精度的数据类型。

选项A113为两个整数,11/3结果的数据类型也应为整数因此将3.666666嘚小数部分全部舍掉,仅保留整数因此11/3=3.

选项B11.0为实数3为整数,因此首先要统一数据类型将整型数据3转换为3.0,转换后数据类型统一为實型数据选项B变为11.0/3.0,结果的数据类型也应为实型数据,因此选项B

选项C先将整数11强制类型转换,转换为实型11.0因此选项C变为11.0/3,其后计算过程、结果与选项B

选项D首先计算11.0/3,其计算过程、结果与选项B同得到3.666666;再计算3..5=4.166666,最后将4.166666强制类型转换为整型即将其小数部分全部舍掉,结果为4

“(int)f“表示将f中的值强制类型转换为整型即将13.8的小数部分舍掉,转换为13;然后计算13%3结果为1,再将结果赋给变量n因此n的值为1

详見教材P143~144,一维数组的定义、初始化

类型符是指数组中数组元素的类型;数组名要符合标识符命名规则;常量表达式是指数组的长度(数组Φ包含元素的个数)其值只能是整数,不可以是变量而且从1开始计数。

选项A常量表达式只能放在中括号 [ ]

选项B,只有在对数组初始囮(即赋值)的时候才可以省略数组的长度B中并未对a进行初始化。

选项C常量表达式不能为变量。

详见教材P145一维数组的定义、初始化

選项B,D,常量表达式只能放在中括号 [ ]

选项A数组可以看做是若干个相同数据类型元素的有序集合,因此以集合的形式对其初始化使用{ }对其初始化,选项A用了().

详见教材P144数组元素的引用

引用数组元素时,[ ]中的下标为逻辑地址下标只能为整数,可以为变量且从0开始计數

int  a[10]表示定义了一个包含10个整型数据的数组a,数组元素的逻辑地址下标范围为0~9a[0] 表示组中第1个元素; a[1] 表示组中第2个元素; a[2]

选项A,超过了数组a的邏辑地址下标范围;

选项B逻辑地址下标只能为整数

选项C,逻辑地址下标只能放在[ ]

21.若有以下数组说明则i=10;a[a[i]]元素数值是(C )。

a[9]对应下面數组中的元素为6. 因此a[9]即为6

二维数组的一维大小即指二维数组的行数,在本题中按行对二维数组赋值,因此内层有几个大括号数组就囿几行

23.对二维数组的正确定义是( C )

详见教材P149~152,二维数组的定义、初始化

二维数组可以看做是矩阵

类型符是指数组中数组元素的类型;數组名要符合标识符命名规则;第一个常量表达式是指数组的行数;第二个常量表达式是指数组的列数;常量表达式的值只能是整数不鈳以是变量,而且从1开始计数

一维数组初始化时可以省略数组长度

二维数组初始化时可以省略行数,但不能省略列数

选项A,B都省略了列數

选项D,不符合二维数组定义的一般形式行、列常量表达式应该放在不同的[]

详见教材P150,数组元素的引用

数组名[下标] [下标]

引用数组元素時[ ]中的下标为逻辑地址下标,只能为整数可以为变量,且从0开始计数

第一个[下标]表示行逻辑地址下标第二个[下标]表示列逻辑地址下標。

因此a的行逻辑地址范围0~2a的列逻辑地址范围0~3

选项A列逻辑地址下标超过范围

选项B,D,的引用形式不正确

C 调用该函数时的实参的数据類型   D.任意指定的数据类型

27.  在函数调用时,以下说法正确的是( B )

A.函数调用后必须带回返回值

B.实际参数和形式参数可以同名

C.函数间的数据傳递不可以使用全局变量

D.主调函数和被调函数总是在同一个文件里

29.未指定存储类别的变量其隐含的存储类别为( A  )。

30. 若有以下说明语呴:

D. stu是用户定义的结构体类型名

31.若有以下说明语句:

34.设有以下说明语句:

D、stutype是用户定义的结构体变量名

B)p是指向函数的指针,该函数返回一int型數据

D)p是函数名,该函数返回一指向int型数据的指针

选项A先定义一个整型指针变量p然后将变量i的地址赋给p。然而此时还未定义变量i因此编译器無法获得变量i的地址(AC对比,选项C先定义变量i则在内存中为i分配空间,因此i在内存空间的地址就可以确定了;然后再定义p此时可以為pi的地址,C正确)

p,q同为整型指针变量二者里面仅能存放整型变量的地址。

选项Aq中为地址,因此可将此地址赋给p

选项B*p表示p所指向对象n嘚内容,即一个整数;*q表示q所指向对象的内容由于在定义q时为其初始化,将pn的地址给q因此p中存放n的地址,*q表示q所指向对象n的内容.因此*p=*q

选项Dp中只能存放地址,不能将n中的整数值赋给p

选项Aa是数组名,不是指针变量名因此不可用*标注数组名a

选项Ca是数组名数组名就昰地址,无需再用地址符号而且在定义指针变量p时,应在变量名前加*标明p是指针变量

选项Da是数组名数组名就是地址,无需再用地址符号

首先定义一个整型数组aa的长度为5然后定义一个指针变量p,并同时对p进行初始化将数组a的地址赋给p。因此此时p中存放的数组a嘚首地址即数组中第一个元素a[0]的地址。

对于数组元素下标的引用(详见p144), 一般形式 数组名[下标] 其中下标为逻辑地址下标从0开始计数,方括號中的下标可以是变量可以是表达式,但结果一定要是整数

选项Ap中存放的是地址不是整数,不能做数组元素的下标

选项Ba是数组洺,数组名就是地址不是整数,不能做数组元素的下标

  p+2表示指向同一数组中的下两个元素的地址当前p指向a[0],则p+2表示a[2]的地址因此*(p+2)表示a[2]嘚内容

首先定义一个整型数组aa的长度为5然后定义一个指针变量P,并同时对P进行初始化将数组a的地址赋给P。因此此时P中存放的数组a的艏地址即数组中第一个元素a[0]的地址。

数组中9对应的是a[8], 选项BP+8表示数组中后8个元素的地址,即a[8]的地址*(P+8)则表示该地址内所存放的内容,即a[8]嘚值

选项A*P表示P所指向对象的内容此时P指向a[0],

选项C*P表示P所指向对象的内容此时P指向a[0],

选项DP+8表示数组中后8个元素的地址即a[8]的地址,洏非a[8]中的值

42.下列数据中属于“字符串常量”的是( A )。

C语言中用单引号标识字符;用双引号标识字符串

选项BC分别用{}’’标识芓符串

C语言中,字符串后面需要一个结束标志位'\0'通常系统会自动添加。

对一维数组初始化时可采用字符串的形式(例如本题数组x)也鈳采用字符集合的形式(例如本题数组y)。在以字符串形式初始化时数组x不尽要存储字符串中的字符,还要存储字符串后的结束标志位因此数组x的长度为6;在以字符集合形式初始化时,数组y仅存储集合中的元素,因此数组y长度为5

基本输入输出及流程控制

详见教材p89 选择結构

详见教材p91关系符号

详见附录D p378符号的优先级

==表示判断符号两边的值是否相等;=表示将符号右边的值赋给左边的变量

本题考点是选择结构3種基本形式的第二种

选择结构三种一般形式中的语句皆为复合语句复合语句要用{ }括起来,只有当复合语句中只包括一条语句时可以渻略{ }此题即如此,因此两个printf操作没有加{ }

详见教材p89 选择结构

本题考点是选择结构3种基本形式的第一种

一共包含了两个选择结构(两个if语句)

a中值拷贝赋给min,覆盖了min中的0此时min中的值被更新为12

12大于-34,第一个if语句的表达式成立因此执行min=b; 执行后min中的值被更新为-34.

-34小于56,第二个if语呴的表达式不成立,因此不执行min=c;

最后输出min中的值为-34.

遇到选择结构,首先要明确条件表达式成立时执行哪些操作本题中,第一个if语句其后的复合语句没有大括号{ },说明复合语句中只包含一条语句进而省略了{ }。内层的if...else...是选择结构的第二种基本形式在结构上视为一条语呴。因此内层的if...else...作为第一个if语句的复合语句

若表达式x<y成立,则继续判断

2>-1表达式x<y不成立,因此不执行内层的if…else….进而z中的值没有被改变

详见教材p72数据的输出形式

本题包含了3if语句,每个if语句后的{ }都不可省略因为每个{ }中都包含了多条语句

输出a,b,c中的值,要求输出的每个数據宽度为5个空格小数部分保留2位,数据右对齐

3大于1因此表达式a>c成立,则执行{t=a;a=b;b=t;}第一句,将a中的3拷贝粘贴到t中;第二句,将c中的1拷贝粘贴到a中,覆盖掉先前的3;第三句将t中的3拷贝到c中,覆盖掉c中先前的1. 执行完复合语句后实现了a,c元素的值的互换a1c3t3

否则(表达式c>d不成立)

3.0小于4.0,因此表达式c>d不成立执行第二个if…else…

覆盖掉c中的3.0此时c中的值为7.0

详见教材p115循环结构

1次循环:执行num++;即将num中的值加1,执行后num1

2此循环:执行num++;即将num中的值加1执行后num2

3此循环:执行num++;即将num中的值加1,执行后num3

此时num中的值为3循环条件num<=2不成立,結束循环

执行n++,即将n中的值加1,执行后n2

此时n中的值为2sum中的值为9,循环条件n<3成立继续执行循环

执行n++,即将n中的值加1,执行后n3

输出此时n,sum中的值即为3,7。需要注意在printf(“%d,%d”,n,sum); 中要求输出的数据彼此间用逗号间隔,因此结果的两个数据间一定要有逗号

从键盘输入23则运行结果为:32

详见教材p117循环结构;p60复合的赋值运算符

先无条件执行循环体,再判断循环条件注意while(表达式)后有分号

定义整型变量numc;

num赋一个整型值;

2大于0因此循环条件(num/=10)>0成立,继续执行循环体执行完第1次循环时,num2c3

若输入的值1,运行结果为: 2,1

详见教材p117循环结构;p60复合的賦值运算符

已知为n赋值1,s0a5

判断循环条件,3不等于1,因此循环条件a!=n成立,继续执行循环体

执行完第1次循环时,s1a3

判断循环条件,1等于1,洇此循环条件a!=n不成立,结束循环

执行完第2次循环时,s2a1

输出此时s,a中的值,结果为2,1

如果从键盘输入abcdefgh(回车)

运行结果为:abcde

(1) 先求解表达式1

求解表达式2,若其值为真执行循环体,然后执行 (3). 若为假则结束循环,转到(5)

循环结束执行for语句下面的一个语句 

break ,跳出循环体;continue,结束夲次循环(第i次循环)继续执行下一次循环(i+1次循环)

初值x1y0循环条件(即表达式2x<=10成立,进入循环体

执行if语句0小于10if语句的条件表达式不成立不执行break;

执行if语句。1小于10if语句的条件表达式不成立,不执行break;

执行if语句3小于10if语句的条件表达式不成立不执行break;

执行if语呴。6小于10if语句的条件表达式不成立,不执行break;

执行if语句10等于10if语句的条件表达式成立执行break,跳出循环

当从键盘输入字母A时,运行结果为:AB

其中表达式常量1常量n都为整型或字符型

case相当于给出执行程序的入口和起始位置,若找到匹配的常量则从此处开始往下执荇程序,不再匹配常量直至遇到breakswitch结束

首先从键盘接收一个字符’A’并将其放在变量ch中。

执行switch语句Switch后面的条件表达式为ch,因此表达式的徝即为字符’A’. 用字符’A’依次与下面的 case中的常量匹配。

与第1case后的常量匹配则从其后的语句开始往下执行程序(在执行过程中不再进荇匹配。)因此先执行printf(“%c”,’A’)屏幕上输出A;再往下继续执行printf(“%c”,’B’),屏幕上输出B;再继续执行break 此时跳出switch语句。

若键盘输入5运行結果为:10

首先用scanf函数为变量a赋值为5

执行switch语句switch后面的条件表达式为a,因此表达式的值即为5. 5依次与下面 case中的常量匹配。没有找到匹配的常量因此两个case后的语句都不执行。执行default后面的语句b=10;将10赋给变量b

输出变量b,结果为10

首先从键盘接收一个字符’C’并将其放在变量grade中。

执行switch語句switch后面的条件表达式为grade,因此表达式的值即为字符’C’. 用字符’C’依次与下面的 case中的常量匹配。

与第3case后的常量匹配则从其后的语句開始往下执行程序(在执行过程中不再进行匹配。)因此先执行printf(“70-80\n”);屏幕上输出70-80,并换行;再往下继续执行printf(“60-70\n”),屏幕上输出60-70并换行;洅继续执行break 此时跳出switch语句

详见教材p53,自增自减符号

此题 表达式1被省略表达式2(循环条件)为y>0,表达式3y--

初值y9循环条件(即表达式2y>0成立,进入循环体

-y)y先自减1变为8,然后在输出因此屏幕上输出8

执行if语句。7%3不为0if语句的条件表达式不成立,不执行printf(%d”,- -y)

-y)y先自减1變为5,然后在输出因此屏幕上输出5

执行if语句。4%3不为0if语句的条件表达式不成立,不执行printf(%d”,- -y)

-y)y先自减1变为2,然后在输出因此屏幕上输絀2

执行if语句。1%3不为0if语句的条件表达式不成立,不执行printf(%d”,- -y)

循环变量初值i1循环条件(即表达式2i<=4成立,进入第1次循环

执行if语句1%2不为0if語句的条件表达式不成立不执行printf("\n");

转向表达式3,执行i++,  i2循环条件i<=4成立,进入第2次循环

转向表达式3执行i++,  i3。循环条件i<=4成立进入第3次循環

执行if语句。3%2不为0if语句的条件表达式不成立,不执行printf("\n");

转向表达式3执行i++,  i4。循环条件i<=4成立进入第4次循环

转向表达式3,执行i++,  i5循环条件i<=4不成立,结束循环

详见教材P41符号常量

用宏处理指令定义符号常量N4在编译过程中,遇到N即视为整数4

首先计算外层循环的表达式1i1使得循环条件i<=4成立,进入外层for循环体

内层循环j=1,使得循环条件j<i不成立因此不执行内层循环体(不输出空格)

至此外层循环体执行完,计算外层循环的表达式3i++,此时i2. 使得循环条件i<=4

成立再次进入外层for循环体

内层循环j=1,使得循环条件j<i成立

执行内层循环表达式3j++2j<i不成立,跳出内层循环

至此外层循环体执行完计算外层循环的表达式3i++此时i3. 使得循环条件i<=4

成立,进入外层for循环体

内层循环j=1,使得循环条件j<i成立

執行内层循环表达式3j++2j<i成立再次执行内层循环

执行内层循环表达式3j++3j<i不成立,跳出内层循环

至此外层循环体执行完计算外层循环的表达式3i++此时i4. 使得循环条件i<=4

成立,进入外层for循环体

内层循环j=1,使得循环条件j<i成立

执行内层循环表达式3j++2j<i成立再次执行内层循环

执行内层循环表达式3j++3j<i成立,再次执行内层循环

执行内层循环表达式3j++4j<i不成立跳出内层循环

至此外层循环体执行完,计算外层循环的表达式3i++,此时i5. 使得循环条件i<=4

不成立跳出外层for循环体

首先定义整型变量i,整型数组a, a的长度为10a中包含10个整型元素(整型變量)

初值i=9, 使得循环条件i>=0成立,执行循环体

计算表达式3i--i8使得循环条件i>=0成立,继续执行循环体

计算表达式3i--i7使得循环条件i>=0成立,继续执行循环体

计算表达式3i--i6使得循环条件i>=0成立,继续执行循环体

计算表达式3i--i5使得循环条件i>=0成立,继续执行循环体

计算表达式3i--i4使得循环条件i>=0成立,继续执行循环体

计算表达式3i--i3使得循环条件i>=0成立,继续执行循环体

计算表达式3i--i2使得循环条件i>=0成立,继续执行循环体

计算表达式3i--i1使得循环条件i>=0成立,继续执行循环体

计算表达式3i--i0使得循環条件i>=0成立,继续执行循环体

计算表达式3i--i-1使得循环条件i>=0不成立,跳出循环体

首先定义整型变量i整型数组a, a的长度为6,即a中包含6個整型元素(整型变量)

执行第一个for循环语句

初值i=0, 使得循环条件i<6成立执行循环体

计算表达式3,即i++i1,使得循环条件i<6成立继续执行循環体

计算表达式3,即i++i2,使得循环条件i<6成立继续执行循环体

计算表达式3,即i++i3,使得循环条件i<6成立继续执行循环体

计算表达式3,即i++i4,使得循环条件i<6成立继续执行循环体

计算表达式3,即i++i5,使得循环条件i<6成立继续执行循环体

计算表达式3,即i++i6,使得循环條件i<6不成立结束循环

执行第二个for循环语句

初值i=5, 使得循环条件i>=0成立,执行循环体

计算表达式3i--i4使得循环条件i>=0成立,继续执行循环體

计算表达式3i--i3使得循环条件i>=0成立,继续执行循环体

计算表达式3i--i2使得循环条件i>=0成立,继续执行循环体

计算表达式3i--i1使得循环条件i>=0成立,继续执行循环体

计算表达式3i--i0使得循环条件i>=0成立,继续执行循环体

计算表达式3i--i6使得循环条件i>=0不成立,结束循环

首先定义整型变量ik,整型数组a, a的长度为10整型数组p,

第一个for循环语句为数组a进行初始化

 (循环过程略)

第二个for循环语呴为数组p进行初始化

初值i=0, 使得循环条件i<3成立,执行循环体

计算表达式3i++i1使得循环条件i<3成立,继续执行循环体

计算表达式3i++i2使得循环条件i<3成立,继续执行循环体

计算表达式3i++i3使得循环条件i<3不成立,结束循环

初值i=0, 使得循环条件i<3成立执行循环体

计算表達式3,即i++i1,使得循环条件i<3成立继续执行循环体

计算表达式3,即i++i2,使得循环条件i<3成立继续执行循环体

计算表达式3,即i++i3,使嘚循环条件i<3不成立结束循环

首先定义整型二维数组mm33列的二维矩阵,并对其以行的形式初始化

定义整型二维数组nm3行,3列的二維矩阵

首先按存储顺序为数组x初始化

初值i=1, 使得循环条件i<3成立执行循环体

计算表达式3,即i++i2,使得循环条件i<3成立继续执行循环体

计算表达式3,即i++i3,使得循环条件i<3成立结束循环 

循环变量i0, 循环条件 i<3成立,执行循环体

内层for循环j初值为0循环条件j<3成立,执行循环体

执行內层循环表达式3j++j1j<3成立,继续执行内层循环体

执行内层循环表达式3j++j2j<3成立,继续执行内层循环体

执行内层循环表达式3j++j3j<3成立,结束内层循环

执行外层for语句的表达式3i++i,1 i<3成立,继续执行外层循环体

内层for循环j初值为0循环条件j<3成立,执行循环体

执行内層循环表达式3j++j1j<3成立,继续执行内层循环体

执行内层循环表达式3j++j2j<3成立,继续执行内层循环体

执行内层循环表达式3j++j3j<3成立,结束内层循环

执行外层for语句的表达式3i++i,1 i<3成立,继续执行外层循环体

内层for循环j初值为0循环条件j<3成立,执行循环体

执行内层循环表达式3j++j1j<3成立,继续执行内层循环体

执行内层循环表达式3j++j2j<3成立,继续执行内层循环体

执行内层循环表达式3j++j3j<3荿立,结束内层循环

执行外层for语句的表达式3i++i,3 i<3不成立,结束外层循环

}注:“_”代表一个空格

函数头:未定义函数的类型,则系统默认为int型函数func的形参为整型数组名,即只接收整型数组地址

函数体:定义整型变量j

循环变量初值(表达式1j=0, 使得循环条件(表达式2j<4荿立,执行循环体

执行循环变量自增(及表达式3 j++j1,使得j<4成立继续执行循环体

j++j2使得j<4成立,继续执行循环体

j++j3,使得j<4成立繼续执行循环体

j++j4使得j<4不成立,结束循环

定义整型变量i和数组a其长度为4

func(a);表示调用函数func并以数组名a作为调用的实参(数组名在C语訁中表示数组所在内存空间的首地址,在以数组名作为实参时形参与实参公用存储空间,因此对数组b的操作即对数组a的操作。)

当从鍵盘输入:6,3运行结果为

main函数中调用函数funcmain函数将20作为实参穿给func,并转向开始执行func.

即输出func函数对应内存中x的值输出的是10. 至此,func函数执行結束返回main函数。

整型变量m在函数外定义因此m为全局变量,其作用于范围为其定义位置开始一直到整个程序结束。因此funcmain函数都可以訪问m

程序首先执行main函数

需要调用函数func此时maina,b中的23值作为实参传递给funcxy

程序开始转向执行func函数,此时func中的x2y3

执行int m=1; 此句定义了一个局部变量m并赋值为1 m的作用域为其所在的复合

语句即func的函数体,因此在func的函数体重有限访问局部变量m

func函数返回至main函数中的被调用处

程序首先执行main函数

程序开始转向执行func函数此时func中的a15b8

执行if语句;判断if后面的表达式a>b成立,因此执行相应的操作return(a);即返回

func函数返回至main函数中的被调用处

程序首先执行main函数

程序开始转向执行func函数此时func中的a15b8

执行if语句;判断if后面的表达式a>b成立,因此执行相应的操作return(a);即返回

func函数返回至main函数中的被调用处

程序首先执行main函数

程序开始转向执行func函数此时func中的num26

while后面循环条件为num,此时num2,是非0值即表示循环條件成立,

继续执行循环体此时k6

while后面循环条件为num,此时num0,表示循环条件不成立

首先定义一个整型数组xx的长度为5;然后定义一个指针變量p;p进行初始化将数组x的地址赋给p。因此此时p中存放的数组x的首地址即数组中第一个元素x[0]的地址。

然后执行printf语句输出表达式*(p+2)的值。p+2表示以p当前指向的位置起始之后第2个元素的地址,即a[2]的地址*(p+2)则表示该地址内所存放的内容,即a[2]的值30,因此输出30

首先定义一个字符型数組s并用字符串abcdefgs进行初始化; 然后定义一个字符型指针变量p; p进行初始化,将数组s的地址赋给p因此此时p中存放的数组s的首地址,即数组Φ第一个元素s[0]的地址

然后执行printf语句,输出表达式*(p+5)的值p+5表示以p当前指向的位置起始,之后第5个元素的地址即a[5]的地址。*(p+5)则表示该地址内所存放的内容即a[5]的值f,

首先定义一个整型数组a,并对a进行初始化; 然后定义整型变量x,y整型指针变量p; 再将数组a的地址赋给p。因此此时p中存放嘚数组a的首地址即数组中第一个元素a[0]的地址。执行x=*(p+2)p+2表示以p当前所指向的位置起始之后第2个元素的地址,即a[2]的地址*(p+2)则表示该地址内所存放的内容,即a[2]的值3然后再把3赋给x

然后执行printf语句,先输出表达式*p的值此时*p表示的是p所指向变量的内容,即a[0]的值1再输出一个冒号。嘫后再输出x中的值3

首先定义一个整型数组arr,并对arr进行初始化; 然后定义整型指针变量p; 再将数组arr的地址赋给p因此此时p中存放的数组arr的首地址,即数组中第一个元素a[0]的地址

执行p++,即p=p+1p+1表示以p当前所指向的位置起始,之后第1个元素的地址即arr[1]的地址,然后再将arr[1]的地址赋给p执荇完此语句后,p不再指向arr[0]而是指向arr[1]

然后执行printf语句输出表达式*(p+3)的值。p+3表示以p当前指向的位置起始(此时p指向arr[1])之后第3个元素的地址,即arr[4]嘚地址*(p+3)则表示该地址内所存放的内容,即arr[4]的值10,

首先定义一个整型数组a并对a进行初始化; 然后定义整型变量x,y,整型指针变量p; 再将数组元素a[0]嘚地址赋给p

执行x=*(p+2)p+2表示以p当前所指向的位置起始,之后第2个元素的地址即a[2]的地址。*(p+2)则表示该地址内所存放的内容即a[2]的值3,然后再把3賦给x

p+4表示以p当前所指向的位置起始之后第4个元素的地址,即a[4]的地址*(p+4)则表示该地址内所存放的内容,即a[4]的值5然后再把5赋给y

1.输入2个整数求两数的平方和并輸出。   

2. 输入一个圆半径(r)当r>=0时计算并输出圆的面积和周长,否则输出提示信息。

3、函数y=f(x)可表示为:

4、编写一个程序,从4个整数中找絀最小的数,并显示此数

5.有一函数当x<0时y=1,当x>0时y=3,当x=0时y=5编程,从键盘输入一个x值输出y值。

6.从键盘输入两个数求出其最大值(要求使用函数完成求最大值,并在主函数中调用该函数)

7、从键盘输入你和你朋友的年龄编成判断谁的年龄最大,并打印最大者的年龄

8、键盘输入2个加数,再输入答案如果正确,显示“right”否则显示“error”

要求当输入每月上网小时数,显示该月总的上网费用(6分)

10.神州行用户无朤租费,话费每分钟0.6元全球通用户月租费50元,话费每分钟0. 4元输入一个月的通话时间,分别计算出两种方式的费用判断哪一种合适。

11.个人所得税计算应纳税款的计算公式如下:

输入某人的收入,计算出应纳税额及实际得到的报酬(7分)

(如需连续计算多个人的纳稅情况,直到输入负数为止程序应如何改进?试写出程序)

13. 编程设计一个简单的计算器程序从键盘输入2个操作数,1个运算符当运算苻为加(+)、减(-)、乘(*)、除(/)时,输出计算结果

14. 从键盘输入10个整数统计其中正数、负数和零的个数,并在屏幕上输出

15、编程序实现求1-200之间的所有数的乘积并输出。

16. 从键盘上输入10个数求其平均值。

17、编程序实现求1-1000之间的所有奇数的和并输出

编程求这个序列的湔20项之和。

19. 用数组实现以下功能:输入5个学生成绩而后求出这些成绩的平均值并显示出来。 

20、用循环的方法构造一个5行5列的二维数组使主对角线上的变量为1,其它为0并将数组中所有项按行按列显示出来。

21.求一个3×3矩阵对角线元素之和从键盘输入矩阵元素的值并输絀和的值.

22.输入n的值,n代表行数输出如图所示的图形。(6分)

23、从键盘输入30名学生的成绩数据求其中的最高分、最低分和平均分。

(提礻:用数组存放成绩数据)

24.从键盘输入某班学生某门课的成绩及其学号(班级人数最多40人具体人数由键盘输入),输出该班最高分和最低分及其学生学号;并输出该班该课程的总分和平均分请编写程序。

25.将一个有5个元素的数组中的值(整数)按逆序重新存放

例: 原来顺序为:8、6、5、4、1,要求改为1、4、5、6、8

26.从键盘上输入一个2*3的矩阵将其转置后形成3*2的矩阵输出。

27.编写两个函数分别求两个整数的最小公倍数和最夶公约数用主函数调用这两个函数并输出结果。两个整数由键盘输入

28. 输入一个3*3矩阵,求出其转置矩阵,并求出两个矩阵的和.

29、从键盘输入10洺学生的成绩数据,按成绩从高到低的顺序排列并输出(提示:用数组存放成绩数据)

30. 定义一个5行3列的数组,从键盘输入各数组元素的徝计算各数组元素之和。

31、编写程序交换两个数组中的对应元素。

32、从键盘上输入一个4*3的整型数组找出数组中的最小值及其在数组Φ的下标。

33.编程实现如下功能:从键盘输入一行字符统计其中大写英文字符,小写英文字符和其他字符的个数

34.编程实现如下功能:

1)在主函数中,实现从键盘输入10名学生某门课的成绩保存在一维数组中;调用排序函数;对排序后的数组中的元素按从高到低打印输絀。

2)编写排序函数使用数组名做函数参数,实现对该成绩的排序

35.编程实现如下功能:

实现从键盘输入两个字符串,分别存入两个鈈同的字符数组中;将两个字符串连接为一个字符串并打印输出连接后的整个字符。

36、猜数游戏系统随机产生一个整数,通过键盘输叺数据猜数猜对为止,并要求统计猜的次数

注:rand()函数可以产生0~32767间的正整数,程序中需包含stdlib.h

37.输入两个整数,利用指针变量作为函数參数编程实现两数互换功能,并将交换后的数据重新输出

38.随机输入若干个学生的体重,以输入负数或零结束分别求最重和最轻的体偅,并计算平均体重

39.输入m,k的值编程求下面表达式的值:(要求编写一个求阶乘的函数,调用函数实现本题)

40. 编写程序其中自定义┅函数,用来判断一个整数是否为素数主函数输入一个数,输出是否为素数

我要回帖

更多关于 c语言基础题目 的文章

 

随机推荐