《C语言程序设计练习题目.docx》由会员分享,可在线阅读,更多相关《C语言程序设计练习题目.docx(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C语言程序设计练习题一、 单项选择题1.C语言中的标识符中能由字每、数字、下画线3种字符组成,且第一个字符是( )。A.必须是字母 B.必须是下画线 C.必须是字母或下画线 D.可以是字母、下画线和数字中的任一字符2.以下字符中,合法的标识符是( )。A.1_23a B.a_123 C.1_a23 D.#1233.一个程序总是从( )位置开始执行。A.第一个函数 B.程序的第一行 C.main函数 D.第一条执行语句4.C程序中,对于main()函数说法正确的是( )。A.必须在最开始 B.必须在系统调用的库函数的后面C.可以任意 D.必须在最后5.下列关于语句说法中正确的是( )、A.语句必
2、须从第一行开始书写 B.一条语句只能写同一行上C.一条语句可以写在多行上 D.一条语句不得多于80个字符6.下列是C语言的特点的是( )。A.C语言程序由一个或多个函数组成B.C语言程序可以由一个或多个文件组成C.C语言程序中有且只有一个main()函数D.C语言程序执行时,通常是从程序中的第一个函数开始执行的7. 在C语言表达式中,用作判断的表达式是( )。A关系表达式 B.赋值表达式 C.算术表达式 D.任意表达式8int x=7;执行x+=x-=x+x后,x的值为( )。A.14 B.-14 C.-13 D.139. 有下列程序:#define N 2#define M N+1 3#de
3、fine NUM 2*M+1 7main()int i;for(i=1;i7;i+)printf(“%dn”,i);该程序中循环的执行次数是( )A.5 B.6 C.7 D.810. 以下语句中为合法的赋值语句的是( )。Ax=y=100 B.d-; C.x+y D.c=int(a+b);11. 以下能对二维数组a进行初始化的表达式是是( )。A.int a23=1,2,3,1,2,3; B.int a2=1,1,1; C.int a13=1,2,3,2,3; D.int a3=1,2,3,1,2,3;12. 当说明一个结构体变量的时候,系统分配给它的内存是( )A各成员所需的内存之和B结构体
4、中第一各成员所需的内存量C.成员中占内存最大者所需的内存量D.结构中最后一个成员所需的内存量13. 已经定义int a10,*p;,则合法的赋值表达式是( )。A.p=100 B.p=a5 C.p=a2+2 D.p=a+214. 若定义int m=7,n=12;则能得到的值为3的表达式是( )。A.n%=(m%=5) B.n%=(m-m%5) C.n%=m-m%5 D.(n%=m)-(m%=5)15.设变量x,y为int型,则值不等于6的表达式为( )。A.(x=y=5,x+y,x+1) B.(x=y=5,x+y,+1)C.(x=5,x+1,y=5,x+y) D.(x=5,y+1,x=y,x+
5、1)16.下面不正确的字符串常量是( )。A.AB B.“abab” C.“a” D.“ ”17.运行时若输入数据2和4,以下程序运行的结果为( )。#include ”stdio.h”void main()int s=1,t=1,a,n,i;scanf(“%d%d”,&a,&b);for(i=1;iy)z=x;x=y;y=z;A.x=10,y=20,z=30 B.x=20,y=30,z=30C.x=20,y=30,z=10 D.x=20,y=30,z=2020.若有定义:int a10,则对数组a元素的正确引用是( )。A. a10 B.3.5 C.a(5) D.a10-1021.若有说明:
6、int a3=1,2,3,4,5,6,7;则数组a第一维大小是( )。A.2 B.3 C.4 D.无确定值22.变量的指针,其含义是指该变量的( )。A.值 B.地址 C.名 D.一个标志23.下列不正确的定义是( )。A. int *p=&i,i; B.int *p,i; C.int i,*p=&i; D.int i,*p;24.若有以下定义,则p+5表示( )。int a10,*p=a;A.元素a5的地址 B.元素a5的值 C.元素a6的地址 D.元素a6的值25.以下对结构体变量stu1中成员age的非法引用的是( )。Struct student int age;int num;stu
7、1,*p;P=&stu1;A.stu1.age B.student.age C.p-age D.(*p).age26.若执行fopen函数时发生错误,则函数的返回值是( )。A.地址值 B.0 C.1 D.EOF二、填空题1.C程序是由函数构成的,这里面有且只有一个主函数,该函数名为 () 2.C语言程序的执行,总是起始于 () 3.表达式(a=5*3,a*9)的值是135,表达式5.8-5/2+2.2+9%5的值是 10 。4. C语言中,二维数组中元素排列的顺序是按 行 存放的。5. 若从键盘输入8,9,则下列程序的运行结果为: 9 。main()int a,b,max;scanf(“%d
8、,%d”,&a,&b);max=(ab)?a:b;printf(“%d”,max);6. 若有int a32=1,2,3,4,5;则a11的值是 0 7. C语言中,结构体类型名字是由一个关键字 s 和结构体名二者组合而成。8.根据一个存储单元的地址即可准确找到该存储单元,通过把这个地址称为 指针 9.文件操作结束后,需要释放内存空间,应该关闭它,“关闭”文件所使用的函数为 fclose 10.如果a是数组名,p是指向数组的指针变量,则引用数组元素i的表示方法为 *(a+i)或*(p+i)或ai 三、程序运行题1.下列程序的运行结果为: 。main()int x,y; x=50; y=(x=x
9、-5,x/5); printf(“y=%dn”,y);2.以下程序输出的结果是_no_main()int a=1,b=3,c=5;if(c=a+b) printf(“yesn”);else printf(“non”);3.若从键盘输入12 7 8 9 5,则以下程序运行结果为: 。main()int a5;int i,j,t;printf(“please input 5 numbers:n”);for(i=0;i5;i+) scanf(“%d”,&ai);printf(“n”);for(j=0;jai+1) t=ai;ai=ai+1;ai+1=t;printf(“the sorted numb
10、ers:n”);for(i=0;i5;i+) printf(“%d”,ai);printf(“n”);4.下面程序段的运行结果是 char str=“abc0def0ghi”,*p=str;printf(“%s”,p+5);5.下面程序段输出结果为 int arr=6,7,8,9,10,*ptr;ptr=arr;*(ptr+2)+=2;printf(“%d,%dn”,*ptr,*(ptr+2);6.下面程序段运行的结果为 270 #includestdio.h struct stu char num10; float score3; main() struccstu s3=20021,90,9
11、5,85,20022,95,80,75, 20023,100,95,90,*p=s; int i; float sum=0; for(i=0;iscorei; printf(%6.2fn,sum);四、程序设计题1. 编程:求1+2+3+4+100+101 2. 定义一个有9个元素组成的二维数组,要将主对角线上的元素求和并输出3.定义一个三行四列的二维数组,以矩阵的形式输出4.通过指针的形式直接访问两个整型变量a和b,其中a=100,b=10。5.采用指针形式,输入a和b两个整数,按先大后小的顺序输出a和b6.采用结构体方法,从键盘中输入学号id,姓名name,性别sex,用指针形式输出7.采用结构体方法,从键盘中同学的姓名,英语成绩,并计算英语成绩的部分和平均分。