引导语:C语言是众多编程语言中的一种,以下是小编整理的C语言试题(精选),欢迎参考阅读!1.若有以下程序#includemaininta=6,b=0,c=0;for;a;b下面是小编为大家整理的2023年C语言试题,供大家参考。
引导语:C语言是众多编程语言中的一种,以下是小编整理的C语言试题(精选),欢迎参考阅读!
1.若有以下程序
#include
main
int a=6, b=0, c=0;
for ;a; b += a; a -= ++c;
printf"%d,%d,%d", a,b,c;
则程序的输出结果是
A 1,14,3
B 0,14,3
C 0,18,3
D 0,14,6
参考答案:B
【解析】本循环的条件判断时只要a为0就退出循环体,初始值a的值为6,满足条件执行完循环体,b的值为6,a-=+ +c即a=a-++c,所以a的值为5,c的值为1第二次循环后b的值为11,a的值为3,c的值为2第三次也是最后循环后,a的值为0,b的值14,c的值为3
2.以下选项中非法的C语言字符常量是
A '\007'
B ''
C 'aa'
D 'xaa'
参考答案:C
【解析】C选项中是字符串常量,应该用双引号表示即"aa"所以选择C选项
3.若有以下程序
#include
void spint *a
int b=2;
a=&b; *a = *a * 2; printf"%d,", *a;
main
int k=3, *p=&k;
spp; printf"%d,%d", k, *p;
则程序的输出结果是
A 4,3,3
B 4,3,4
C 6,3,6
D 6,6,6
参考答案:A
【解析】首先在主函数中给整型变量k赋值为3,将变量k的地址赋给指针变量p;调用sp函数,将实参p的值传给形参a,在sp函数中,指针变量a又获得变量b的地址,通过运算后,输出a的值为4;返回主函数,输出k的值和p的值为3和3。因此A选项正确。
4.若有以下程序
#include
int k=7;
void fint **s
int *t=&k;
*s=t;
printf"%d,%d,%d,", k, *t, **s;
main
int i=3,*p=&i, **r = &p;
fr; printf"%d,%d,%d", i, *p, **r;
则程序的输出结果是
A 3,3,3,7,7,7
B 3,7,7,7,7,7
C 7,7,7,3,3,3
D 7,7,7,3,7,7
参考答案:D
5.若有以下程序
#include
int *fint *s,int *t
int *k;
if *s < *t k = s; s=t; t=k;
return s;
main
int i=3, j=5, *p=&i, *q=&j, *r;
r=fp,q; printf"%d,%d,%d,%d,%d", i, j, *p, *q, *r;
则程序的输出结果是
A 3,5,5,3,5
B 3,5,3,5,5
C 5,3,5,3,5
D 5,3,3,5,5
参考答案:B
【解析】在主函数中分别给整型变量i、j和指针型变量p、q赋初值,并声明指针变量r;调用f函数,并将实参变量p和q的值传递给形参变量s和t,并且f函数是指针型函数,即函数的返回值将是一个地址。在f函数中,如果条件成立,则将指针变量s和t互换,并且将指针s的地址返回主函数。最后输出i, j, *p, *q, *r的值,即3,5,3,5,5。因此B选项正确。
6.若有以下程序
#include
#define N 4
void funint a[][N], int b[], int flag
int i,j;
fori=0; i<N; i++
b[i] = a[i][0];
forj=1; j<N; j++
if flag ? b[i] > a[i][j] : b[i] < a[i][j]
b[i] = a[i][j];
main
int x[N][N]=1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16, y[N],i;
funx, y, 1;
for i=0; i<N; i++ printf"%d,", y[i];
funx, y, 0;
for i=0;i<N; i++ printf"%d,", y[i];
printf"";
则程序的输出结果是
A 1,5,9,13,4,8,12,16,
B 4,8,12,16,1,5,9,13,
C 1,2,3,4,13,14,15,16,
D 13,14,15,16,1,2,3,4,
参考答案:A
7.若有以下程序
#include
void funint a[ ], int n
int t,i,j;
for i=1; i<n; i+=2
for j=i+2; j<n; j+=2
if a[i] > a[j] t=a[i]; a[i]=a[j];a[j]=t;
main
int c[10]=10,9,8,7,6,5,4,3,2,1,i;
func, 10;
for i=0;i<10; i++ printf"%d,", c[i];
printf"";
则程序的输出结果是
A 1,10,3,8,5,6,7,4,9,2,
B 10,9,8,7,6,5,4,3,2,1,
C 2,9,4,7,6,5,8,3,10,1,
D 10,1,8,3,6,5,4,7,2,9,
参考答案:D
【解析】该题首先对一维数组进行初始化,c[0]到c[9]依次赋值为10到1;func, 10;语句调用fun函数,fun函数的功能是将一维数组偶数位元素的数值由小到大排序;最后将排好序的新的一维数组进行输出。因此D选项正确。
8.若有以下程序
#include
main
int i,j=0;
char a[]="How are you!";
for i=0; a[i]; i++
if a[i] != ' ' a[j++]=a[i];
a[j]='\0';
printf"%s",a;
则程序的输出结果是
A Hay!
B Howareyou
C Howareyou!
D How are you!
参考答案:C
【解析】主函数中首先定义字符数组a[]="How are you!";执行for循环语句,语句if a[i] != ' ' a[j++]=a[i];其功能是将字符数组中的空格去掉。因此C选项正确。
9.若有以下程序
#include
char *a="you";
char b[ ]="Welcome you to China!";
main
int i, j=0; char *p;
for i=0; b[i] !='\0'; i++
if *a == b[i]
p=a;
for j=i; *p!='\0'; j++
if *p != b[j] break;
p++;
if *p=='\0' break;
printf"%s", &b[i];
则程序的输出结果是
A China!
B to China!
C me you to China!
D you to China!
参考答案:D
【解析】该程序首先定义*a和b[ ],并进行初始化。主函数中通过外层for循环语句,遍历字符数组b[ ],并且将符合if条件语句的字符赋给数组p;for内层循环语句,遍历字符数组a[ ]。再将符合if条件语句的结果输出。因此D选项正确。
10.若有以下程序
#include
main
char a[20], b[ ]="The sky is blue."; int i;
for i=0; i<7; i++ scanf"%c", &b[i];
getsa; printf"%s%s", a,b;
执行时若输入: 其中
Fig flower is red.
则输出结果是
A wer is red.Fig flo is blue.
B wer is red.Fig flo
C wer is red.The sky is blue.
D Fig flower is red.The sky is blue.
参考答案:A