当前位置:首页 » 《随便一记》 » 正文

c语言复习

21 人参与  2023年04月01日 08:20  分类 : 《随便一记》  评论

点击全文阅读


1.以下符合C语言语法的实型常量是( )。
A.5E-3
B.1.2E0.5
C.3.14.159E
D.E15

考点:(二)基本数据类型(基本整型、字符型、浮点型等);
B 科学计数法中指数需要为整数
在这里插入图片描述

2.putchar函数可以向终端输出一个( )。A.整型变量表达式B.字符或字符型变量值C.字符串
D.实型变量值
3.若有以下定义和语句
char c1=’b’,c2=’e’;
printf(”%d,%c\n ”,c2-c1,c2-‘a’+’A’);
则输出结果是( )。
A.2,M
B.3,E
C.2,E
D.输出项与对应的格式控制不一致,输出结果不确定

考点:(一)指针变量的定义与使用;
%d,‘b’-‘a’ //1
c+‘A’-'a’转大写

4.为了避免嵌套的条件语句if-else的二义性,C语言规定:else与( )配对。
A.编排位置相同的if
B.其之前最近的if
C.其之后最近的if
D.同一行上的if

(二)if语句的选择结构;
else 就近原则(向前

5.设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n=c>d)后n的值为( )。
A.0
B.1
C.2
D.7

运算符优先级
优先级:关系运算符>赋值运算符
a > b不成立,则不再执行第二个条件判断
在这里插入图片描述

6.在C语言中,以下错误的描述是( )。
A.break语句不能用于循环语句和switch语句外的任何其它语句
B.在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环
C.在switch语句中使用break语句或continue语句的作用相同
D.在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环

(十)循环状态的改变(break语句、continue语句等)。
break:强行退出循环
continue:终止某次循环

7.在C语言中,数组作为函数的形参,函数调用时,若用数组名作为函数的实参,则实际上传递给形参的是( )。
A.数组中全部元素的值
B.数组的第一个元素值
C.数组元素的个数
D.数组首地址

(三)指针引用数组;
扩展:在这里插入图片描述

8.若有说明:int a[][4];则a[i][j]前有( )个元素。
A.j4+i
B. i
4+j+1
C.i4+j-1
D.i
4+j

(三)二维数组的定义与引用;
下标从0开始,举个例子验证

9.若有以下说明: int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
则数值为6的表达式是( )。
A.p+6
B.
(p+6)
C.p+5
D.*p+=5

(一)指针变量的定义与使用;
A *p是1,*p+1是6
B 7
C a数组的首地址加一

10.有如下程序:
int main( )
{int n=9;
while ( n>5) {n-- ; printf(“%d”, n); }
return 0;}
该程序的输出结果是( )。
A.8765
B. 876
C.9876
D.987

(八)几种常见的循环语句(while、do…while、for);
先判断再自减并输出

1.以下函数的功能是:求x的y次方,请填空:
double fun ( double x , int y)
{ int i ; double z;
for ( i=1 , z=x ; i<y ; i++ ) z=z*( );
return z ;
}

x

2.若有以下定义,则不移动指针p,且通过指针p引用值为98的数组元素的表达式是( )
int w[10]={23,54,10,33,47,98,72,80,61},*p=w。

*(p+5)

3.设有以下定义的语句:
int a[3][2]={10,20,30,40,50,60},(* p)[2];
p=a;
则*(*(p+2)+1)值为( )。

60
第三列的第二个(下标为1)元素值

4.设有以下程序:
int main ( )
{ int a,b,k=4,m=6,*p1=&k,*p2=&m;
a=p1= =&m;
b=( *p1) / (*p2)+7;
printf (“a=%d \ n” ,a);
printf (“b=%d \ n” ,b);
return 0;}
执行该程序后,a的值为( ),b的值为( )。

0 7
a=p1==&m; 是将p1和m的地址判断,如果相等就是1,如果不是就是0 而p1是k的地址,和m的地址不相等,结果就为0,赋值给了a

程序阅读题

1.以下程序的运行结果是:
#include<stdio.h>
int main()
{ int a,b,c,d;
unsigned u;
a=12;b=-24;u=10;
c=a+u;d=b+u;
printf(“a+u=%d,b+u=%d\n”,c,d);
return 0;}

a+u=22,b+u=-14

2.以下程序的运行结果是:
#include <stdio.h>
int main()
{ int i, k=0, s[10]={1,2,3,4,5,6,7,8,9,10};
for(i=0;i<10;i++)
if(i%2) k+=s[i];
for(i=i-1;i>=0;i–)
if(i%5= =0) printf(“%d\t”,s[i]);
printf(“%d\n”,k);
return 0;}

6 1 30(注:6和1后面是7个空格)
\t制表符,间隔7个空格

以下程序的运行结果是:
#include <stdio.h>
int main()
{ char s[]={“12345”};
void sub_s1(char s[],int n) ;
void sub_s2(char s[ ],int n);
sub_s1(s,5);sub_s2(s,6);
return 0;
}
void sub_s1(char s[],int n)
{ int i,j;
for(i=0;i<n;i++)
{ for(j=0;j<i;j++) printf(“%c “,s[j%5]);
printf(”\n”);
}
}
void sub_s2(char s[ ],int n)
{ int i,j;
for(i=0;i<n;i++)
{ for( j=i;j<n;j++) printf(“%c”,s[j%5]);
printf(“\n”);
}
}

1
12
123
1234
123451
23451
3451
451
51

以下程序的运行结果是:
#include<stdio.h>
void swap(int *,int *);
int main()
{
int a=5, b=7, *ptr1, *ptr2;
ptr1=&a, ptr2=&b;
swap (ptr1,ptr2);
printf(“*ptr1=%d,*ptr2=%d\n”,*ptr1,*ptr2);
printf(“a=%d,b=%d\n”,a,b);
return 0;
}
void swap (int *p1, int *p2)
{
int p;
p=*p1;
*p1=*p2;
*p2=p;
}

*ptr1=7,*ptr2=5
a=7,b=5

5.以下程序的运行结果是:
#include <stdio.h>
int main( )
{
FILE *fp;
int i,k=0,n=0;
fp=fopen(“d1.dat”,“w”);
for(i=1;i<4;i++)
fprintf(fp, “%d”,i);
fclose(fp);
fp=fopen(“d1.dat”,“r”);
fscanf(fp, “%d%d”,&k, &n);
printf(“%d,%d\n”,k, n) ;
fclose(fp);
return 0;}

123,0
for(i=1;i<4;i++) fprintf(fp,“%d”,i); 把123写入文件
fscanf(fp,“%d%d”,&k,&n); 读取整形时遇到不属于数字的字符时结束,即读取k=123,文件结束,n不变

算法设计

1.编写程序实现,假设有十个人,每个人年龄不同,用冒泡法将他们的年龄从小到大排列并输出。从键盘输入十个人的年龄。要求排序过程用函数实现。

void bubble(int a[], int n){for(int i = 0; i < n; i++){int flag = 0;for(int j = n - 1; j > i; j--){if(a[j] < a[j - 1]){//从小到大为例int temp = a[j];a[j] = a[j-1];a[j-1] = temp;flag = 1;//本轮发生交换}}if(!flag) return ;//已经没有逆序,说明整体有序}}

2.编写程序,将字符串中的第m个字符开始的全部字符复制成另一个字符串。要求在主函数中输入字符串及m的值,并输出复制结果,在被调函数中完成复制。
3.定义N×N的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的s。例如,若a数组中的值为:

则返回主程序后s的值应为3.375。


点击全文阅读


本文链接:http://www.zhangshiyu.com/post/57700.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1