首页 > 更多知识 发布时间:2023-04-10 23:17:15

软考初级试题及答案c语言


谁能提供点C语言的试题给我,最好能有答案的,非常感谢!
本试卷共5页共5大题,考生在作答前应先检查是否有缺页、白页、以防漏答。查对无误后,请先填写学号、姓名、专业,再答卷。

一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。(共10小题,每小题2分,共20分)。

1、不是C语言基本数据类型的是( )。
A、指针类型 B、整型
C、字符型 D、实型

2、设有:int a=3, b= 4, c= 5,x , y; 表达式(x=a)&&(y=b)&&0的值为( )。
A、1 B、0 C、3 D、4

3、设有语句 int a=3 ; 则执行了语句 a+ = a - = a后,变量a 的值是( )。
A、3 B、0 C、9 D、-12

4、执行以下程序后,y的值是( )
main()
{ int a[]={2,4,6,8,10};
int y=0,i,*p;
p=&a[0];
for(i=0;i<5;x++)
y+=*(p+i);
printf(“%d\n”,y);
}
A、17 B、18 C、19 D、30

5、有定义语句:float a;则分配给数组a的空间为( )字节。
A、 20 B、 12 C、 16 C、10

6、以下描述错误的是( )。
A、break语句可用于do~while语句
B、break语句和continue语句的作用是一样的
C、在循环语句中使用break语句是为了跳出循环,提前结束循环
D、在循环语句中使用continue语句是为了结束本次循环,而不终止整个循环

7、C语言中规定,if语句的嵌套结构中,else总是( )。
A、与最近的if 配对 B、与第一个if 配对
C、按缩进位置相同的if配对 D、与最近的且尚未配对的if 配对

8、说明语句“int (*p)( ); ”的含义是( ) 。
A、p是一个指向一维数组的指针变量
B、p是指针变量,指向一个整型数据
C、p是一个指向函数的指针,该函数返回一个int型数据
D、以上都不对

9、以下对二维数组c的正确声明是 ( ) 。
A、int c[ ]; B、int c(3,4); C、int c
(2)
(2); D、int c;

10、下述程序段执行后输出结果是( )。
int x=100, y=200;
printf ("% d", (x, y));
A、100 B、200 C、100,200 D、编译出错
二、填空题。(共10空,每空1分,共10分 )

1、C语言提供的三种逻辑运算符是 && 、 || 和!;

2、函数的返回值是通过函数中的 return 语句获得的。

3、在"int a[ ]={{1},{3,2},{4,5,6},{0}};"定义后,a的值为_6__ _;

4、对于"int *pa;" pa是一个具有5个元素的_数组指针_,每个元素是一个指向int型变量的__指针__;

5、单向链表的尾节点next指针应赋值__ NULL___;

6、for(int x=0,y=1;x&&y〈=5;y++)中循环体执行的次数是 0 。

7、int a;数组a的首地址为2000,则元素a的地址为 2002 ,元素a的地址为 2004 。
三、程序填空题。(共8空,每空2分,共16分 )

1、以下程序中子函数返回数组s中最大元素,数组中元素的个数由t传入。
Int findmax(int s[],int t)
{
int m,n,*p;
max=0;
p= s ;
for(n=1;n<t;n++)
if(*(p+max)<*(p+n)) max=n ;
return(*(p+max));;
}
Void main( )
{ int a;
int i;
for(i=0;i<10;i+=)
scanf(“%d”,&a[i]);
printf(“%d”,findmax{a,10});
}

2、以下程序完成计算1-1/2+1/3-1/4+..前n 项和的功能,请填空。
#include <stdio.h>
int main( )
{ int i, n, flag;
float sum;
scanf("%d", &n);
flag= 1 ;
sum=0;
for(i=1;i<=n; i++ )
{ sum+=(float)flag/i;
flag=-flag ;
}
printf("%.3f\n", sum);
}

3、以下程序的功能是从键盘输入n个整数,统计其中正数、0、负数的个数,请填空。
#include <stdio.h>
int main( )
{int a, i, count1,count2,count3;
count1=cout2=count3=0 ;
for(i=1;i<=n;i++)
{ scanf(“%d”, &a);
If(a>0) count1++;
Else if(i==0) count2++ ;
Else count3++;
}
printf(“正数:&d个,零:%d个,负数:%d个\n”, count1,count2,count3);
}
四、运行程序结果。(共4小题,每小题6分,共24分)

1、运行时输入100,200,请写出程序运行结果。
Void main( )
{
int a, b,*p1,*p2 ;
scanf ( " % d ", & a , );
scanf ( " % d ", & b );
printf(“a=%d,b=%d”,a,b);
p1=&a; p2=&b;
swap ( p1,p2);
printf(“a=%d,b=%d”,a,b);
}
Void swap ( int *p1, *p2)
{
int t ;
t=*p1; *p1=*p2; *p2=t;
}
运行结果为:
a=100,b=200a=200,b=100


2、运行时若输入1 2 3 4 -5<回车>,写出程序运行结果。
#include <stdio.h>
int main( )
{
int x, sum;
scanf("%d", &x);
sum=0;
while(x>0)
{ if(x%2!=0) sum+=x;
scanf("%d", &x);
}
printf("sum=%d\n", sum);
}
运行结果为:
sum=4


3、写出程序运行结果。
#include<stdio.h>
int max(int a,int b)
{ int c;
c=a>b?a:b;
return(c);
}
int min(int a,int b)
{int c;
c=a<b?a:b;
return(c);
}
void main()
{ int a=2,b=6;
printf("max=%d\n",max(a,b));
printf(“min=%d\n”,min(a,b));
}
运行结果为:
max=6
Min=2


4、运行时若输入4 1 2 3 0<回车>,写出程序运行结果。
#include <stdio.h>
int main( )
{
int i, index, n;
int a;
scanf("%d", &n);
for(i=0; i<n; i++)
scanf("%d", &a[i]);
index=0;
for(i=1;i<n;i++)
{ if(a[i]<a[index]) index=i; }
printf("min=%d,index=%d\n", a[index],index);
}
运行结果为:
min=0,index=3

五、程序设计.( 共3小题,每小题10分,共30分)

1、输入10个字符串,将其按由小到大排序。
#include<stdio.h>
#include<string.h>
Void main( )
{ char c,t;
Int I, j,k;
For(i=0;i<10;i++)
Gets(c[i]);
For(i=0;i<9;i++)
{ k=I;
For(j=i+1;j<10;j++)
If(strcmp(c[k],c[j])>0) k=j;
If(k!=i) { strcpy(t,c[k]); strcpy(c[k],c[i]); strcpy(c[i],t); }
For(i=0;i<10;i++)
Puts(c[i]);
}

2、求出1!+2!+3!+…+8!。
#include<stdio.h>
Float fact(int n)
{ float f;
If(n==1||n==0) f=1;
Else f=fact(n-1)*n;
Return(f);
}
Void main( )
{float sum;
Int I;
Sum=0;
For(i=1;i<=8;i++)
Sum+=fact(i);
Printf(“sum=%d\n”,sum);
}

3、请写出在一个单向链表中插入一个结点的函数:
struct student *insert(struct student *head, struct student *stud)
(说明:链表结点有两个成员:数据成员data和指针成员next)。
#include <stdio.h>
#include <malloc.h>
#define NULL 0
#define LEN sizeof(struct student)
struct student
{ int data;
struct student *next;
};
int n;
struct student *insert(struct student *head, struct student *stud)
{struct student *p0,*p1,*p2;
p1=head;p0=stud; if(head==NULL)
{head=p0; p0->next=NULL;}
else{while((p0->data>p1->data) && (p1->next!=NULL))
{p2=p1; p1=p1->next;}
if(p0->data<=p1->data) {if(head==p1) head=p0;
else p2->next=p0; p0->next=p1;}
else {p1->next=p0; p0->next=NULL;}}
n=n+1; return(head);
}
C语言程序设计试题 求标准答案 都是多选

1、答案:A
(单引号括起来的都是字符,而且一对单引号最多对应一个字符,\反斜杠是转义字符的开始,\72是ASCII码对应的字母H。也就是把H这个字母存到了变量char a中。就一个字符H。)

2、ACDE
解析:
int a=3,b=4,c=5;,
A、a>b
B、a<=b
C、(a||b)>c
D、a<=(b||c)
E、!((a<b)&&!c||b)
优先级由大到小:() ! && ||
A选项,3>4错误,逻辑值0。
B选项,3<=4正确,逻辑值1。
C选项,(3||4)>5,(3||4)"或"逻辑运算符两边只要有一个非0的整个值就是1,1>5错,逻辑值0。
D选项,3<=(4||5)错误,逻辑值0。
E选项,!((3<4)&&!5||4),先(3<4)逻辑值1,!5逻辑值0,1&&0是0,0||4是1,!1是0,所以逻辑值0。

3、AC。
解析:A可以,B答案b不能被赋值(自左向右,计算||左侧就已经是1了右边就不用再计算了整个表达式无论右边如何整个逻辑值必定是1,计算机也就不会计算右边了)C可以(因为&&两边都必须计算才能得出最后的逻辑值答案),D不可以a不能被赋值(&&左边就一个a,构不成赋值,可能存放一个随机值,右边可以被赋值)。

4、ABCD。
外部函数几乎可以被所有函数调用。只要开头#include” "引入。
C语言试题,那位大神帮忙给个答案
◆单选题 共(40 分)

1、在C语言中, char型数据在内存中的存储形式是:___A___
A、补码
B、反码
C、原码
D、ASCII码


2、已知int i, x;则不能将x的值赋给变量i的语句是___C___
A、i=*(*(x+1))
B、i=x
C、i=*(*(x+1))
D、i=*(x+1)


3、以下叙述正确的是__D____
A、在C程序中,main函数必须位于程序的最前面
B、C程序的每行中只能写一条语句
C、C语言本身没有输入输出语句
D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误


4、若x=2,y=3则x||y的结果是__B____
A、0
B、3
C、1
D、2


5、若有以下说明语句:char s='\\\092';则下面哪一项是正确的__B____
A、使s的值包含2个字符
B、说明语句不合法
C、使s的值包含6个字符
D、使s的值包含4个字符


6、一个C程序的执行是从_A_____
A、本程序的main函数开始,到main函数结束
B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C、本程序的main函数开始,到本程序文件的最后一个函数结束
D、本程序文件的第一个函数开始,到本程序main函数结束


7、已知int a;则对a数组元素的正确引用是______ 没有正确的,AC相同,应该是选项有问题。
A、a
B、a[3.5]
C、a
D、a
(5)


8、若希望当A的值为奇数时,表达式的值为"真",A的值为偶数表达式的值为"假"。则以下不能满足要求的表达式是___C___
A、A%2= =1
B、!(A%2 = =0)
C、!(A%2)
D、A%2


9、在C语言的if语句中,用作判断的表达式为___B___
A、关系表达式
B、逻辑表达式
C、算术表达式
D、任意表达式


10、C语言程序由什么组成?___C___
A、子程序
B、主程序和子程序
C、函数
D、过程


11、已知static int a={2,4,6,8,10,12}; 正确表示数组元素地址的是___C___
A、*(a+2)
B、a+3
C、*(a+1)
D、a[0][0]


12、075的十进制写法为___,十六进制写法为___。 C
A、0x4b 0113
B、0165 117
C、61 0x3d
D、0x4b 61


13、在C语言中,字符型数据在内存中的存储形式是__B____
A、原码
B、补码
C、反码
D、ASCII码


14、( )以下关于数组的描述正确的是 C
A、数组大小固定,但是可以有不同类型的数组元素
B、数组大小可变,但是所有数组元素的类型必须相同
C、数组大小固定,所有元素的类型必须相同
D、数组大小可变,可以有不同类型的数组元素


15、在C语言中,要求运算数必须是整型的运算符是__D___
A、/
B、++
C、!=
D、%


16、( A)若有以下定义:char s= "programming",*ps=s;则不能代表字符g的表达式是
A、ps+3
B、s
C、ps
D、ps+=3,*ps


17、(D )选择正确的输入语句( )。:(其中:char string;)使得string的内容为"I am student". D
A、scanf("%s", string);
B、scanf("%c", &string);
C、scanf("%s", &string);
D、gets(string);


18、已知char b, *p=b;则正确的赋值语句是。__C____
A、b=”abcd”
B、*b=”abcd”;
C、p=”abcd”;
D、*p=”abcd”;


19、printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式___B___
A、从左起输出该字串,右补空格
B、按原字符长从左向右全部输出
C、右对齐输出该字串,左补空格
D、输出错误信息

20、75的十六进制写法为___,八进制写法为______ C
A、0x4b 0113
B、0165 117
C、61 0x3d
D、0x4b 61
c语言测试题目及答案
B.因为在计算1/2时参与运算的分子分母都是整型,将会得到整型数据0而不是浮点型数据0.5,而其他选项在做除法时,参与计算的分子或分母至少一方是float型,可以得到正确结果
C语言初级题目!!

#include<stdio.h>

void main()

{

int i,,j;

for(i = 0; i< 3; i++)//0开始算第一个数,第3个数是2,所以不能等于3只能小于3

for(j= 0; j < 5; j++)//0开始算第一个数,第5个数是4,所以不能等于5只能小于5

{

printf( "*" );

if(j==4)

printf("\n");//第5个*后加回车

}

getchar();

}


初级C语言题目

main()

{ int a,b,c;

int temp; /*定义一个用于交换的中间变量*/

scanf("%d%d%d",&a,&b,&c);/*输入a b c的值*/

temp=a;a=b;b=c;c=temp;/*交换值*/

printf("%d,%d,%d",a,b,c);

}

}