【高效复习】C语言——模拟题(usetc)

c语言复习精粹(模拟题易错点)

模拟一

1、程序段:
int k=0;
while(k++<=2) printf(“last=%d\n”,k);
last= _____
A2 B3 C4 D无结果

2、若二维数组a有m列,则a[i][j]元素前的数据元素个数为______
A jm+i B im+j C im+j-1 Dim+j+1

3、在c语言中,若未在函数定义时说明函数类型,则函数默认的类型为______
A、void B double C int D char

4、使用fseek函数可以实现的操作是_____
A、改变文件的位置指针的当前位置
B、文件的顺序读写
C、文件的随机读写
D、以上都不对

判断
1、c程序可以有若干个源文件组成,因此最小的功能单位是源文件,最小编单位是函数。
2、c程序中函数不可以嵌套定义但可以嵌套调用
3、在函数内的复合语句中定义的变量在本函数范围内有效

答案:
C D C A

对于fseek:
功能:把与fp有关的文件位置指针放到一个指定位置。
格式: int fseek(FILE *stream, long offset, int fromwhere);
范例一:fseek(fp, 0L, SEEK_END);
解释:文件指针定位到文件末尾,偏移0个字节
范例二: fseek(fp,50L,0);或fseek(fp,50L,SEEK_SET);
解释:其作用是将位置指针移到离文件头50个字节处。
SEEK_SET 对应的数字:0,代表的文件位置:文件开头。
SEEK_CUR 对应的数字:1,代表的文件位置:文件当前位置.
SEEK_END 对应的数字:2,代表的文件位置:文件末尾

fseek事例:

#include <stdio.h>
#include <stdlib.h>//fseek函数调用
int main()
{
    // 开始文件中的内容为aaaaaaaaa
    FILE * fp = fopen("a.txt", "r+");
    if (fp == NULL) {
        printf("file error\n");
        exit(1);
    }
    fseek(fp, 2, SEEK_SET);//光标移到文件开始起第二个字节处。
    fwrite("yun", 1, 3, fp); //文件内写入内容yun
    fclose(fp);
    return 0;
}

判断题:
错:最小功能单位是函数,最小编译单位是源程序文件
对:函数在内存中地址唯一,不可以嵌套定义
错:应该是在本复合语句内
其他:结构体指针用“->”表示

模拟二

1、c语言中不能用来表示整常数的进制是什么进制_____
A 十进制 B二进制 C八进制 D十六进制
2、下列表达式:2+‘a’+i*f,其中i为整型变量,f为float型变量,则表达式的最终数据类型为______
A、int B、float C、char D、double
3、printf("%s,%5.3s\n",“computer”,“computer”); _______
4、若有如下语句:int *p1,*p2;则其中int所指的是_______
A、 p1的类型 B、p1和p2的类型 C、p2的类型 D、p1和p2所指向变量的类型
5、若fp是指向某文件的指针,且已读到此文件末尾,则库函数feo(fp)的返回值是_______
A、EOF B、0 C、非零值 D、NULL

判断
1、for语句作为循环控制语句时,括号内的分号是用来分开表达式的,因此要根据需要加分号。()

答案:
1、B
2、D 解释:在运算过程中都会有类型提升,普通的两个short进行运算 也会在运算过程中首先将类型都提升成为int,然后再进行运算。这是一个运算中自动的类型提升,有浮点数的运算中会被提升为double这是系统规定的。
3、取字符串的3个字符,输出5位靠左输出(右边补2个空格)
输出:computer, com.
4、D B选项是运算
5、C 如果文件结束,则返回非0值,否则返回0

错 for语句作为循环控制语句时,其括号内各个表达式及其后的分号都可缺省。

模拟三:

1、设有如下定义:
int x=10,y=5,z; 则语句printf(“%d\n”,z=(x+=y,x/y));,则输出结果____
A、1 B、0 C、4 D、3

判断:
1、函数的返回值类型是由函数的类型和return语句中表达式类型共同决定的,当这两类型不一致时最终起决定作用的是return中表达式的类型()

答案:
1、D
错 在定义该函数时所指定的函数类型所决定

模拟四

1、func(exp1,exp2),(exp3,exp,exp5)),函数调用语句中实参个数_______
A 1 B 2 C 3 D 4
2、判断
每个c程序文件中都必须要有一个main函数()
答案:
B (exp1,exp2)是逗号表达式:算出exp1和exp2的值,然后取exp2的值;后面的exp3和exp4也是一样。所以说调用的实参只有两个。
错 注意题目说的是文件,调用文件(如头文件)就不需要main函数,它也是一个文件啊。

字符也可以加减与比较
int main()
{
char c;
c=‘7’+‘9’;
printf("%c %d %d %d",c,c,‘7’,‘9’);
return 0;
}
输出 p,112,55,57

指针编程
编写一个程序,用12个月份的英文名称初始化一个字符指针数组,当键盘输入整数为1到12时,显示相应的月份名,键入其他整数时显示错误信息

#include<stdio.h>
main()
{
    char *months[]={"January","February","March","April","May","June","July","August","September" 

,"October","November","December"};
    int n;
    scanf("%d",&n);
    if(n<=12 && n>=1) printf("%d %s",n,*(months+n-1));
    else printf("输入无效\n");
}

模拟五

1、switch©
{case …1:语句1
case …n-1:语句n-1
default 语句n;}
其中括号内c的类型____
A可以是任意类型
B只能为整型
C可以是整型或字符型
D可以为整型或实型
2、正确概念 :形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。

答案
1、C switch()的参数类型不能为实型 。

最近在做usetc的c语言,后续会对真题与期末题中易错和重要的部分选择性总结出来。敬请期待。

猜你喜欢

转载自blog.csdn.net/lyly1995/article/details/87825200