以下程序的输出是()。

struct st { int x; int *y; } *p;
int dt[] = { ,,, };
struct st aa[] = { ,&dt[],,&dt[],,&dt[],,&dt[] };
void main()
{
p = aa;
printf("%d\n", ++(p->x));
}

A、10

B、11

C、51

D、60

答案:C

分析:aa是大小为4的结构体数组,p是一指向该结构体的指针,将数组名aa赋给

p,p将指向数组aa的第一个元素aa[0],p->x其实就是利用指针p来引用aa[0]的成员x,

其值为50,加1后输出的结果为51.故正确答案是C


以下程序的输出是多少?

main() {
int a[] = { ,, };
int *p;
int *q;
p = a;
q = &a[];
printf("%d", a[q-p]);
return ;
}

A、0

B、1

C、2

D、未知

答案:C

分析: 这里q-p的实际运算是:(q的地址值-p的地址值)/sizeof(int),所以为2。


若有定义语句:char s[3][10],(*k)[3],*p;则以下赋值语句错误的是()

1.p=s; 
2.p=k;
3.p=s[0]; 
4.k=s;

A、124

B、1234

C、12

D、234

答案:A

分析:这道题主要就考指针类型是否一样。
char s[3][10]   s 是数组指针,类型为char (*)[3],所指向的每个数组长度为10;
char (*k)[3]     很明显k就是一个数组指针,类型也为 char (*)[3],但是所指向的每个数组的长度未知;
char *p           类型为char * 指针。
因此,在没有强制类型转换的情况下,只有类型完全相同的指针才能相互复制。
答案:1,2,4

用 C 语言编写的源程序须经过编译连接后,生成扩展名为 .exe 的可执行文件,才能运行。

A、正确

B、错误

答案:B

分析:只有在windows环境下c源程序编译后才会生成.exe的可执行文件,Linux下生成的不是EXE文件。


给定一个数组int arr[] = {3,8,3,9,9,7,7},筛选出其中没有重复的一个数。

方法一、先定义一个动态数组将重复的数据放入动态数组中,然后将原数组与动态数组进行比较,最后筛选出没有重复的数字。

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int arr[] = { 3,8,3,9,9,7,7 };//给定的数组
int len = sizeof(arr) / sizeof(arr[0]);//得到数组长度
int value_arr[sizeof(arr) / sizeof(arr[0])];//放置重复数据的数组
//将重复结果放在数组中
int index = 0;
for (int i = 0; i < len; i++)
{
for (int j = i + 1; j < len; j++)
{
bool flag = false;
for (int z = 0; z < len; z++)
{
if (arr[i] == value_arr[z]) {
flag = true;
break;
}
}
if (arr[i] == arr[j] && !flag)
{
value_arr[index++] = arr[i];
break;
}
}
}
//筛选没有重复的数据
for (int i = 0; i < len; i++)
{
bool flag = false;
for (int j = 0; j < len; j++) {
if (arr[i] == value_arr[j])
{
flag = true;
break;
}
}
if (!flag)
{
printf("%d\n", arr[i]);
}
}
system("PAUSE");
return 0;
}

  

方法二、将原数组进行排序,若有重复数据数据则从重复数据之后进行遍历。

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int arr[] = { 3,8,3,9,9,7,7 };//给定的数组
int len = sizeof(arr) / sizeof(arr[0]);//得到数组长度
//先给数组进行排序
for (int i = 0; i < len; i++)
{
for (int j = i + 1; j < len; j++)
{
//升序
if (arr[i] > arr[j])
{
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
//筛选没有重复的数据
for (int i = 0; i < len; i++)
{
if (i != 0 && i != len - 1 && len > 1) {
if (arr[i] != arr[i - 1] && arr[i] != arr[i + 1]) {
printf("%d\n", arr[i]);
}
}
else if (len == 1)
{
printf("%d\n", arr[0]);
}
else
{
if (i == 0 && arr[0] != arr[1]) {
printf("%d\n", arr[0]);
}
if (i == len - 1 && arr[len - 2] != arr[len - 1]) {
printf("%d\n", arr[len - 1]);
}
}
}
system("PAUSE");
return 0;
}

  


c笔试题的更多相关文章

  1. 对Thoughtworks的有趣笔试题实践

    记得2014年在网上看到Thoughtworks的一道笔试题,当时觉得挺有意思,但是没动手去写.这几天又在网上看到了,于是我抽了一点时间写了下,我把程序运行的结果跟网上的答案对了一下,应该是对的,但是 ...

  2. 从阿里巴巴笔试题看Java加载顺序

    一.阿里巴巴笔试题: public class T implements Cloneable { public static int k = 0; public static T t1 = new T ...

  3. 我设计的ASP.NET笔试题,你会多少呢

    本笔试题考查范围包括面向对象基础.HTML.CSS.JS.EF.jQuery.SQL.编码思想.算法等范围. 第1题:接口和抽象类有何区别? 第2题:静态方法和实例方法有何区别? 第3题:什么是多态? ...

  4. C#经典笔试题-获取字符串中相同的字符以及其个数

    public Dictionary<char,int> GetStrSameAs(string str){ //将字符串转换成一个字符数组. char[] charArray=str.To ...

  5. flhs笔试题-回家上机实践

    这是最近参加的一个公司的笔试题,回家上机写了下代码,希望对有需要的小伙伴有用,简单实现字符串和数组在指定位置的插入: package org.flhs; import com.google.commo ...

  6. 也许你需要点实用的-Web前端笔试题

    之前发的一篇博客里没有附上答案,现在有空整理了下发出来,希望能帮助到正在找工作的你,还是那句话:技术只有自己真正理解了才是自己的东西,共勉. Web前端笔试题 Html+css 1.对WEB标准以及w ...

  7. [c#基础]关于try...catch最常见的笔试题

    引言 在翻看之前总结的常见面试题中,关于try...catch异常处理的还是蛮多了,今天看到这个面试题,也就重新学习一下. try..catch语法 try-catch语句由一个try块后跟一个或多个 ...

  8. js作用域之常见笔试题,运行结果题

    笔试题中经常有运行结果题,而大多体型都是围绕作用域展开,下面总结了几种相关的题: 外层的变量函数内部可以找到,函数内部的变量(局部变量)外层找不到. function aaa() { var a = ...

  9. 【Android】一道Android OpenGL笔试题

    一道Android OpenGL笔试题 SkySeraph May. 5th 2016 Email:skyseraph00@163.com 更多精彩请直接访问SkySeraph个人站点:www.sky ...

  10. C/C++ 笔试题

    /////转自http://blog.csdn.net/suxinpingtao51/article/details/8015147#userconsent# 微软亚洲技术中心的面试题!!! 1.进程 ...

随机推荐

  1. Java设计模式之builder模式

    Java设计模式之builder模式 今天学mybatis的时候,知道了SQLSessionFactory使用的是builder模式来生成的.再次整理一下什么是builder模式以及应用场景. 1. ...

  2. Windows 文件过滤驱动经验总结

    Windows 文件过滤驱动经验总结作者:sinister 本文转载自驱动开发网 看了 ChuKuangRen 的第二版<文件过滤驱动开发教程>后,颇有感触.我想,交流都是建立在平等的基础 ...

  3. [技术博客]基于动态继承类、WebDriver的浏览器兼容性测试框架搭建

    问题背景 观察使用selenium进行自动化测试的过程,我们可以将它概述为: 启动测试进程,在该进程中构建WebDriver 启动浏览器进程,将它与WebDriver建立连接 使用WebDriver向 ...

  4. js获取数组中的最大值/最小值

    目录 前言 1. 使用Math的静态方法max/min 1.1 结合ES6的扩展运算符...使用 1.2 结合apply/call方法来使用 1.3 结合reduce来使用 2. 排序获取 2.1 只 ...

  5. Sublime Text 3.2.1详细安装破解教程,附最新激活码license(全网独家可用有效)

    title: "Sublime Text 3.2.1详细安装破解教程,附最新激活码license(全网独家可用有效)" categories: soft tags: soft au ...

  6. vue 专题 vue2.0各大前端移动端ui框架组件展示

    Vue 专题 一个数据驱动的组件,为现代化的 Web 界面而生.具有可扩展的数据绑定机制,原生对象即模型,简洁明了的 API 组件化 UI 构建 多个轻量库搭配使用 请访问链接: https://ww ...

  7. 运维笔记--线上服务器git环境配置

    场景描述: 我们采用git去管理代码分支,本地开发环境,线上服务器多数情况下也会使用git去管理程序代码,那么新的一台服务器,如果指定了目标路径作为代码存放路径,该如何配置git环境, 以达到跟远程服 ...

  8. C# 动态创建EXE

    1.创建项目SaveExe或者修改代码中SaveExe名字为自己的项目 2.添加按钮调用CreateCodeEXE,即可实现编译生成一个新的exe即 复制了自身的exe生成一个新的exe(目的就是新生 ...

  9. [K8s]无yaml文件重启Pod

    在没有pod 的yaml文件时,强制重启某个pod kubectl get pod PODNAME -n NAMESPACE -o yaml | kubectl replace --force -f ...

  10. matlab学习笔记11_3高维数组操作 filp, shiftdim, size, permute, ipermute

    一起来学matlab-matlab学习笔记11 11_3 高维数组处理和运算 filp, shiftdim, size, permute, ipermute 觉得有用的话,欢迎一起讨论相互学习~Fol ...