c语言函数练习题(c语言练习题)

本文目录
- c语言练习题
- 《C语言程序设计》练习题
- c语言 练习使用math.h中包含的常用数学函数 绝对值和开平方
- c语言标准函数练习题
- 初学问几道C语言数组的练习题
- 急需!!!
函数编程练习 实验5 题2 答案 - 一个C语言的练习题,实现一个求m到n(m
- 谁知道哪有关于C语言的练习题
- 求助大侠:(C语言问题)编写一个函数将3*5矩阵转置.(指针这节的一道练习题),谢谢了!
- c语言练习题:编写一个函数int ch(char s[ ],char c);求数组s中参数c表示的字符出现的次数.
c语言练习题
1、以下说法中正确的是____。(C)
A、C语言程序总是从第一个函数开始执行
B、在C语言程序中,要调用的函数必须在main()函数中定义
C、C语言程序总是从main()函数开始执行
D、C语言程序中的main()函数必须放在程序的开始部分
2、某文件中定义的静态全局变量(或称静态外部变量)其作用域是_____。(B)
A、只限某个函数
B、本文件
C、跨文件
D、不限制作用域
3、下列叙述中正确的是_____。(A)
A、函数定义不能嵌套,但函数调用可以嵌套
B、函数定义可以嵌套,但函数调用不可以嵌套
C、函数定义和函数调用都不能嵌套
D、函数定义与函数调用都可以嵌套
4、以下说法中正确的是_____。(A)
A、#define和printf都是C语句
B、#define是C语句,而printf不是
C、printf是C语句,但#define
D、#define和printf都不是C语句
5、以下关于函数叙述中,正确的是_____。(D)
A、在函数体中可以直接引用另一个函数中声明为static类别的局部变量的值
B、在函数体中至少必须有一个return 语句
C、在函数体中可以定义另一个函数
D、在函数体中可以调用函数自身
6、在C语言中,若对函数类型未加显式说明,则函数的隐含类型是______。(A)
A、void
B、double
C、int
D、char
7、下面不正确的描述为______。(A)
A、调用函数时,实参可以是表达式
B、调用函数时,实参与形参可以共用内存单元
C、调用函数时,将为形参分配内存单元
D、调用函数时,实参与形参的类型必须一致
8、在一个源文件中定义的全局变量的作用域为______。(D)
A、本文件的全部范围
B、本程序的全部范围
C、本函数的全部范围
D、从定义该变量开始至本文件结束
9、以下叙述中,错误的是______。(D)
A、不同函数中可以使用相同名字的变量
B、在函数外部定义的变量是全局变量
C、形式参数是局部变量
D、在main函数体内定义的变量是全局变量
10、C语言规定,调用一个函数时,当实参和形参都是普通变量时,它们之间数据传递的方式是______。(B)
A、地址传递
B、单向值传递
C、双向值传递
D、由用户定义传递方式
11、若用数组名作为函数调用的实参,则传递给形参的是______。(A)
A、数组的首地址
B、数组的第一个元素的值
C、数组中全部元素的值
D、数组元素的个数
12、C语言规定,函数返回值的类型是______。(D)
A、return语句中的表达式的类型
B、调用该函数时的主调函数的类型
C、由系统确定
D、该函数定义时的类型
13、若一个void型函数定义中没有return语句,则调用该函数时,函数______。(A)
A、没有返回值
B、返回若干个系统默认值
C、返回一个用户所希望的函数值
D、返回一个不确定的值
14、以下有关C语言的叙述中,错误的是______。(A)
A、函数调用可以作为独立的语句出现
B、函数调用可以出现在表达式中
C、函数调用可以作为函数的实参
D、函数调用可以作为函数的形参
15、以下程序输出结果是__________。(B)
#include 《stdio.h》
int i=10;
main()
{int j=1;
j=fun();
printf("%d,",j);
j=fun();
printf("%d",j);
}
fun()
{int k=0;
k=k+i;
i=i+10;
return (k);
}
A、0,0
B、10,20
C、10,10
D、20,20
《C语言程序设计》练习题
一、选择题
1、C语言规定,在一个源程序中,main()函数的位置(C )。
A) 必须在最开始 B)必须在最后
C) 可以任意 D) 必须在系统调用的库函数后面
这题你死记就行,你看看这个
任何一个C++程序都必须定义一个main函数,它的返回类型总是int类型。这个函数由操作系统来调用,在main函
数执行完以后,程序也就终止了。 main也可以使用return向操作系统返回一个值,使用操作系统的命令可以检测
main的返回值。一般约定在main返回0时,表示程序运行过程中没有出现错误,其它非零值表示程序出现异常情况。
若没有为main指定返回值,这样返回值是任意的。
2、若x和y都是int 型变量,x=100,y=200,且有以下程序段,printf(“%d”,(x,y));则其输出结果是( A)。
A) 200 B) 100 C) 100 200 D) 输出不确定值
(x,y)这是个逗号表达式,表达式的值为最后一个逗号后面表达式的值,因为前面有一个%d,所以输出 的是y的
值
3、合法的C语法字符常量是(C )。
A) “A” B) 65 C) ‘\t’ D) A
字符都是由两个单引号括起来的,死记, a)为字符串
4、表达式“3!=4”的值是(A )。
A) 1 B) 0 C) T D) F
!=是c语言的逻辑运算符,3!=4为真,多以得1, 3=4为假,值为0
5、 int a=1,b=2,c=3,d=4,执行下列程序后x的值为( C)。
if(a》b) x=1;else if (c》d) x=2;else x=3;
A) 1 B) 2 C) 3 D) 4
如果a》b,1》2为假,不执行x=1,执行else if(c》d),判断:3》4为假,不执行x=2,执行=3,完
6、以下程序的输出结果是(D)。
Int x=10,y=3,z;printf(“%d\n”,z=(x%y,x/y));
A)1 B) 0 C) 4 D) 3
逗号表达式,x%y,10%3,商3余1,模取余数1,x/y,10/3,商3余1,除法取商3,逗号表达式,表达式的值为最后一
个逗号后面表达式的值
7、为表示x≥y≥z,应使用C语言表达式(A )。
A) (x》=y)&&(y》=z) B) (x》=y) AND (y》=z)
C) (x》=y》=z) D) (x》=y) & (y》=z)
关系运算符,x》=y与y》=z必须是同时成立的,因此要用逻辑运算符&&,&&与的意思
8、合法的数组定义是( a )。
A) int a={0,1,2,3,4,5};
C) char a=”string”; D) char a={“01234”};
a不指定数组长度定义,正确
b数组长度为5,就是里面有5个数组元素,多了一个数组元素
c定义a不是数组而是一个变量,素组应该是a
d是错的,字符串是这样定义的:char a={’0’,’1’,’2’,’3’,’4’,’\0’};
中数字是数组长度,说明里面有几个元素
9、设x和y均为int型变量,则语句“x+=y;y=x-y;x-=y;”的功能是(D)。
A) 把x和y按从小到大排列 B)把x和y按从大到小排列
C)无确定结果 D)交换x和y中的值
x+=y等同于x=x+y,把x加y的值赋给x,x现在存的是x与y的和
y=x-y把x减y的值赋给y,x现在存的是x与y的和 (x+y)-y=x,把x的值给y,y存x的值
x-=y等同于x=x-y,把x减y的值赋给x,(x+y)-y=x,现在的后面的y存的是x的值,做完后x里存的值是y,完成交换
10、若已定义x和y为double类型,则表达式“x=1,y=x+3/2”的值是(C)。
A) 1 B)2 C) 2.0 D) 1.0
逗号表达式,先让x=1在算y=x+3/2,得2,因为是double类型,所以有小数点
11、下列条件语句中,功能与其他语句不同的是 (D)
A) if(a) printf("%d\n",x); else printf("%d\n",y);
B) if(a==0) printf("%d\n",y); else printf("%d\n",x);
C) if (a!=0) printf("%d\n",x); else printf("%d\n",y);
D) if(a==0) printf("%d\n",x); else printf("%d\n",y);
a 如果a为真输出x,如果a为假输出y
b 如果a==0,也就是为假,输出y,a为真输出x,同a
c 如果a!=0为真,输出x,a为假输出y同上
d 如果a为假输出x,如果a为真输出y,与以上的都不同
12、以下能正确定义二维数组的是 (C)
A) int a=2{2*3};
C) int a={{1},{2},{3,4}};
a 没有给数组赋初值
b {}里不能有*
c 正确,记住第一个不能为空,死记
d a 的意思是有两个一维数组,每个一维数组里有3个元素,{{1},{2},{3,4}}; 她的意思是三个数组,{}中的每一个{}代表一个数组,里边的数为数组元素
13、用C语言编写的代码程序 (B)
A)可立即执行 B)是一个源程序
C)经过编译即可执行 D)经过编译解释才能执行
死记
c语言 练习使用math.h中包含的常用数学函数 绝对值和开平方
d=sqrt(b); 不对, 因sqrt(b)返回的是double型的数值,而d是整型。C中数值转换由低到高(如整型-实型)自动完成,但有高到低必须使用强制类型转换。但你的题意是为了测试数学函数的,因此在变量说明处改一下就行了。如
int a,b,c;
double d;
这样就不会出错了
c语言标准函数练习题
#include 《stdio.h》
#include 《string.h》
// BF朴素搜索
char* _strstr(char* str, const char* search)
{
// 事实以下代码等价于一句 strstr(str,search)
int i, j, k;
for(i = 0; i 《= strlen(str)-strlen(search); ++i)
{
k = i;
for(j = 0; j 《 strlen(search); ++j, ++k){
if( str )
break;
}
if( j == strlen(search) ){
puts("有数据");
return (str+i);
}
}
puts("无数据");
return NULL;
}
int main()
{
char str = "China Japan Korea Vietnam";
char sub;
gets(sub);
_strstr(str, sub);
return 0;
}
初学问几道C语言数组的练习题
/*1,将一个一位数组a中的元素值按逆序重新存放.假定数组中原来元素顺序为:1,3,5,7,9,8,6,4,2,0,按逆序重新存放后元素的值位:0,2,4,6,8,9,7,5,3,1。要求:在程序中将数组初值初始化,输出逆序重新存放后元素的值。*/
#include "stdafx.h"
int main(int argc,char* argv)
{
int a={1,3,5,7,9,8,6,4,2,0};//初始化。
int b;
printf("顺序的数据:\n");
for(int j=0;j《10;j++)
{
printf("%d",a);
printf(" ");
}
for(int i=0;i《10;i++)
{
b;
}
printf("\n逆序后的数据:\n");
for(int n=0;n《10;n++)
{
printf("%d",b);
printf(" ");
}
return 0;
}
/*2,有整型数组a,实际只用数组的前若干个元素。
*/
#include "stdafx.h"
int fun1(int *ar,int num)
{
int au=0;
for(int i=0;i《num;i++)
{
if(ar》0)
{
au++;
}
}
printf("正数个数:%d\n",au);
return au;
}
int fun2(int *ar,int num)
{
int au=0;
for(int i=0;i《num;i++)
{
if(ar》0)
{
au+=ar;
}
}
au=au/fun1(ar,num);
printf("正数平均值:%d\n",au);
return au;
}
int fun3(int *ar,int num)
{
int au=0;
for(int i=0;i《num;i++)
{
if(ar《0)
{
au++;
}
}
printf("负数个数:%d\n",au);
return au;
}
int fun4(int *ar,int num)
{
int au=0;
for(int i=0;i《num;i++)
{
if(ar《0)
{
au+=ar;
}
}
au=au/fun1(ar,num);
printf("负数平均值:%d\n",au);
return au;
}
int main(int argc,char* argv)
{
int a;
int num,date;
printf("请输入数据:\n");
for(num=0;num《20;num++)
{
scanf("%d",&date);
if(date==0)
{
break;
}
a=date;
}
fun2(a,num);
fun4(a,num);
return 0;
}
/*3,任意输入一个4位数,存入变量i,将该数的每一位上的数字,分解到整型数组a数组的内容。要求选择法排序在函数中完成。
如:int i,a;输入i=8362
分解后:a=8
排序后:a=8
运行时,输入8362
输出2368 */
#include "stdafx.h"
void fun(int *a,int num)
{
for(int i=0;i《num-1;i++)
for(int j=i+1;j《num;j++)
{
if(a)
{
int date=a;
a;
a=date;
}
}
}
int main(int argc,char* argv)
{
int i=0;
int a;
printf("请输入四位整数:\n");
scanf("%d",&i);
for(int s=1000,l=0;l《4;s/=10,l++)
{
a=i/s;
i%=s;
}
fun(a,4);
for(int n=0;n《4;n++)
{
printf("%d",a);
}
return 0;
}
,4,给定2维数组如下,求该数组2条对角线元素之和
a=3 6 4 6
8 3 1 3
4 7 1 2
2 9 5 3
要求:1,在主函数中实现:数组赋初值及求和结果的输出 */
#include "stdafx.h"
int main(int argc,char* argv)
{
int a={{3,6,4,6},{8,3,1,3},{4,7,1,2},{2,9,5,3}};
int num=0;
for(int i=0,j=0;i《4;i++,j++)
{
num+=a;
}
printf("第一对角线之和:",num);
printf("%d\n",num);
for(i=4-1,j=4-1;i》0;i--,j--)
{
num+=a;
}
printf("第二对角线之和:",num);
printf("%d\n",num);
return 0;
}
/*6,编写一个函数viod my_strcpy(char s1),将s2中的字符串拷贝到数组s1中去。要求:
1,不允许使用C语言的库函数strcpy()
2,在主函数中输入2个字符串,调用函数my_strcpy()进行字符串拷贝,并在主函数中输入字符串s1,s2内容。
注意:应该将字符数组s1定义足够长,使之能存放连接后的字符串 */
#include "stdafx.h"
void copystr(char *str1,char *str2)
{
while(*str2)
{
*str1++=*str2++;
}
}
int main(int argc,char* argv)
{
char st1="test str";
char st2="";
copystr(st2,st1);
printf("%s\n",st2);
return 0;
}
/*7,输入2个字符串,将对应字母交叉组成第三个字符串,最后输入第三个字符串。例如输入的2个字符串分别是“abcd”和“1234”,则合并后的字符串是“a1b2c3d4”。若2个字符串的长度不等,则其中的一个字符串多余的部分放在结果字符串的尾部,如2个字符串分别是“banana”和“12”,则合并后的字符串是“b1a2nana”
要求:第一个字符串的第一个字母总是结果串的第一个字母。
*/
#include "stdafx.h"
void combinstr(char *str1,char *str2,char *str3)
{
for(;*str1||*str2;)
{
if(*str1)
{
*str3++=*str1++;
}
if(*str2)
{
*str3++=*str2++;
}
}
}
int main(int argc,char* argv)
{
char st1="abcdefghi";
char st2="1234";
char st3="";
combinstr(st1,st2,st3);
printf("%s\n",st3);
return 0;
}
只有第五个没有了,你想怎么示范?
算了随便弄个可以看效果的了:/*5,已知5个学生的3门成绩
COURSE1 COURSE2 COURSE3 AVER
STUD1 76 80 90
STUD2 90 65 77
STUD3 63 55 70
STUD4 90 92 97
STUD5 73 69 82
要求:1,求出并输入每个学生的平均成绩
2,求出并输入每门课的平均成绩
*/
#include "stdafx.h"
int main(int argc,char* argv)
{
float stud={{76,80,90},{90,65,77},{63,55,70},{90,92,97},{73,69,82}};
float num=0;
for(int i=0;i《5;i++)
{
for(int j=0;j《3;j++)
{
num+=stud;
}
num/=3;
printf("\n第%d个学生的平均成绩:\n",i+1);
printf("%f\n",num);
num=0;
}
for(i=0;i《3;i++)
{
for(int j=0;j《5;j++)
{
num+=stud;
}
num/=5;
printf("\n第%d科的平均成绩:\n",i+1);
printf("%f\n",num);
num=0;
}
return 0;
}
急需!!!函数编程练习 实验5 题2 答案
1、
#include "stdio.h"
void print(int array,int length){
int i;
clrscr();
for(i=0;i《length;i++)printf("%d ",array);
}
main(){
int array={6,8,4,9,5};
print(array,5);
getchar();
}
2、
#include "stdio.h"
double average(int array,int length){
int i;
double total=0,average=0;
for(i=0;i《length;i++)
total=total+array;
average=total/length;
return average;
}
main(){
int array={6,8,5},i;
clrscr();
printf("The average is %0.8f",average(array,3));
getchar();
}
3、
#include "stdio.h"
int getmax (int array,int length){
int max=array,i;
for(i=0;i《length;i++)if(max《array;
return max;
}
main(){
int array={6,8,4,9,5};
clrscr();
printf("The max is %d",getmax(array,5));
getchar();
}
4、
#include "stdio.h"
int retrieve(int array,int length,int x){
int i;
for(i=0;i《length;i++)if(array==x)break;
if(i《length)return i+1;/*返回x在该数组中的位置*/
else return -1;/*没查找到*/
}
main(){
int array={6,8,4,9,5},x=5;
int order = retrieve(array,5,x);
clrscr();
if(order==-1)printf("%d is not in this array!",x);
else printf("The order of %d in this array is %d",x,order);
getchar();
}
5、
#include "stdio.h"
void sort(int array,int length){/*选择排序法*/
int i,j,max,k,x;
for(i=0;i《length-1;i++){
max=i;
for(j=i;j《length;j++)
if(array)max=j;
if(max!=i){k=array=k;}
}
clrscr();
for(i=0;i《length;i++)printf("%d ",array);
}
main(){
int array={6,8,4,9,5};
sort(array,5);
getchar();
}
一个C语言的练习题,实现一个求m到n(m
#include 《stdio.h》
int sum(int m, int n);
int main()
{
int m, n;
scanf("%d %d", &m, &n);
printf("sum = %d\n", sum(m, n));
return 0;
}
/* 你的代码将被嵌在这里 */
int sum(int m,int n){
int total=0;
while(m《=n){
total+=m;
m++;
}
return total;
}
谁知道哪有关于C语言的练习题
C 程序设计试题库C语言概述练习题
1.一个C程序的执行是从( )
A.本程序的main函数开始,到main函数结束
B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C.本程序的main函数开始,到本程序文件的最后一个函数结束
D.本程序文件的第一个函数开始,到本程序main函数结束
2.以下叙述正确的是:( )
A.在C程序中,main函数必须位于程序的最前面
B.程序的每行中只能写一条语句
C.C语言本身没有输入输出语句
D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误
3.以下叙述不正确的是:( )
A.一个C源程序可由一个或多个函数组成
B.一个C源程序必须包含一个main函数
C.C程序的基本组成单位是函数
D.在C程序中,注释说明只能位于一条语句的后面
4.C语言规定:在一个源程序中,main的位置( )
A.必须在最开始
B.必须在系统调用的库函数后面
C.可以任意
D.必须在最后
5.一个C语言程序是由( )
A.一个主程序和若干子程序组成
B.函数组成
C.若干过程组成
D.若干子程序组成
6.C源程序的基本单位是____________
7.一个C源程序中至少包括一个____________
8.在一个C源程序中,注释部分两侧的分界符分别为____________ 和____________
9.在C语言中,输入操作是由库函数____________ 完成的,输出操作是由库函数____________ 完成的
c语言模拟练习题
一、 判断题(2×8=16分)
1、Printf()函数总是从新行的起始位置开始打印。 ( )
2、所有的变量在使用前都必须予以申明。( )
3、在申明变量时必须给出变量的类型。( )
4、C语言认为变量number和NuMbEr是相同的。( )
5、打印三行输出的C语言程序必须用三条printf语句。( )
6、求余运算符%只能用于两个整数操作数。( )
7、switch选择结构中必须有default子句。( )
8、如果x》y或a《b为真,那么表达式(x》y&&a《b)为真。( )
二、 选择题(3×16=48分)
1、下面实现换行功能的格式符为 。( )
A. \t B. \n C. \a D. \k
2. C语言程序由什么组成?(单选)
A. 子程序 B. 主程序和子程序 C. 函数 D. 过程
3. 下面哪个表达式的值为4.
A. 11/3 B. 11.0/3
C. (float)11/3 D. (int)(11.0/3+0.5)
4. 该源程序执行后,屏幕上显示什么?
void main()
{
int a;
float b;
a=4;
b=9.5;
printf("a=%d,b=%4.2f\n",a,b);
}
A. a=%d,b=%f\n B. a=%d,b=%f
C. a=4,b=9.50 D. a=4,b=9.5
5. 若有以下说明语句:
char s=’\\\092’;
则下面哪一项是正确的.
A. 使s的值包含2个字符 B. 说明语句不合法
C. 使s的值包含6个字符 D. 使s的值包含4个字符
6.若k,g均为int型变量,则以下语句的输出为哪一项?
int k,g;
k=017;
g=111;
printf("%d,",k);
printf("%x\n",g);
A. 15,6f B. f,6f C. f,111 D. 15,111
7. 在C语言的if语句中,用作判断的表达式为___。
A. 关系表达式 B. 逻辑表达式
C. 算术表达式 D. 任意表达式
8. 请问:下面这个程序段的输出是什么?
int a,b,c;
a=7;b=8;c=9;
if(a》b)
a=b,b=c;c=a;
printf("a=%d b=%d c=%d\n",a,b,c);
A. a=7 b=8 c=7 B. a=7 b=9 c=7
C. a=8 b=9 c=7 D. a=8 b=9 c=8
9. 下面这个程序的输出是什么?
#include 《stdio.h》
main()
{
int y=10;
while(y--);
printf("y=%d\n",y);
}
A. y=0 B. while构成死循环 C. y=1 D. y=-1
10. 若有以下说明和语句,则输出结果是___。
char str="\"c:\\abc.dat\"";
printf("%s",str);
A. 字符串中有非法字符 B. \"c:\\abc.dat\"
C. "c:\abc.dat" D. "c:\\abc.dat"
11. 如果要把常量327存入变量a中,a不能定义成哪些类型?
A. int B. char C. long D. float
12. C语言中,预处理总是以 符号开头。 ( )
A. ¥ B.# C. @ D. ◇
13. C语言中,double类型的数据占 个字节的空间。( )
A. 1 B.2 C. 4 D. 8
14. 下面语句执行完后,b的值为 。 ( )
int a=b=10;
b=10+(a++);
A. 10 B.19 C. 20 D. 21
15. 这段程序中的常量有: (多选) ( )
#define PI 3.14
void main()
{
int sum;
sum = 10 + 15;
printf("sum=%d\n",sum);
printf("result is 25\n");
}
这段程序中常量有:
A. 10 B. sum C. 15
D. 25 E. main F. PI
16. 指出下面错误的表达式:(多选) ( )
A. a+b=5 B. 56=a11 C. i=i++
D. 5.6+6.2%3.1 E. 12 F. a=5,b=6,c=7
三、 填空题(3×8=24分)
1、C语言程序都是从 函数开始执行。
2、函数体用 开始,用 结束。
3、C语言的语句都以 结束。
4、执行循环结构中的 语句能够立即执行下一次循环。
5、执行循环结构或switch结构中的 语句能够立即退出该结构。
6、输出字符串的格式化符为 。
7、C语言中数组名表示数组的 。
求助大侠:(C语言问题)编写一个函数将3*5矩阵转置.(指针这节的一道练习题),谢谢了!
#include《stdio.h》
int main()
{
int i,j,a;
//..
for(i=0;i《3;i++)
for(j=0;j《5;j++)
scanf("%d",&a);
//..
for(i=0;i《5;i++)
for(j=0;j《3;j++)
b;
//..
for(i=0;i《5;i++)
{
for(j=0;j《3;j++)
printf("%d ",b);
printf("\n");
}
return 0;
}
c语言练习题:编写一个函数int ch(char s[ ],char c);求数组s中参数c表示的字符出现的次数.
#include《stdio.h》
#include《string.h》
int ch(char s,char c);
int main( )
{
char s="abjukadliya",c=’a’;
printf("字符串%s中%c字符出现的次数是%d次\n",s,c,ch(s,c));
return 0;
}
int ch(char s,char c)
{
int i,len=strlen(s),count=0;
for(i=0;i《len;i++)
if(s==c)
count++;
return count;
}

更多文章:
易语言点击js按钮(易语言网页填表怎样点击链接为“javascript:void(0)“的按钮)
2026年10月11日 03:00
compare with造句(用compared with和compared to造句)
2026年10月10日 23:30
tensorflow与keras对应版本(为什么tensorflow2.8没有keras)
2026年10月10日 22:10
maven仓库jar网站(如何在maven仓库中添加jar包)
2026年10月10日 19:50
利用地理空间数据云下载dem数据怎么知道具体位置?DEM数据获取
2026年10月10日 18:30
单例模式的几种实现方式(么是单例模式,并写出单例模式的2种实现方式)
2026年10月10日 17:10




